diff options
| author | liuxueli <[email protected]> | 2024-11-15 11:03:10 +0800 |
|---|---|---|
| committer | liuxueli <[email protected]> | 2024-11-15 11:03:10 +0800 |
| commit | 364c16835c90ee4e82153635a18fbc0e4f7cccd4 (patch) | |
| tree | 598302c76a1c0c3e4980387a425f812428369a78 /src | |
| parent | 35d27b82e703a0e36b36d4d532527a79326c9257 (diff) | |
Diffstat (limited to 'src')
| -rw-r--r-- | src/dns.cpp | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/dns.cpp b/src/dns.cpp index cf8c6d8..d8d5d6b 100644 --- a/src/dns.cpp +++ b/src/dns.cpp @@ -1606,7 +1606,7 @@ int get_one_resource_record(char *msg, char **ptr, dns_rr_t *rr, const char *en *ptr += rr->rdlength; break; } - len = MIN(DNS_MAX_NAME-1, rr->rdlength-2);/*size=1byte*/ + len = MIN(DNS_MAX_NAME, rr->rdlength-2);/*size=1byte*/ memcpy(rr->rdata.mx.exchange, *ptr, len); /* error labels */ rr->rdata.mx.exchange[len]='\0'; *ptr += rr->rdlength-2; @@ -1668,8 +1668,9 @@ int get_one_resource_record(char *msg, char **ptr, dns_rr_t *rr, const char *en (*ptr)+=1; break; case DNS_TYPE_TXT: - len = MIN(DNS_MAX_NAME-1, rr->rdlength-1);/*size=1byte*/ + len = MIN(DNS_MAX_NAME, rr->rdlength-1);/*size=1byte*/ memcpy(rr->rdata.txt.txt, *ptr+1, len); + rr->rdata.txt.txt[len]='\0'; rr->rdata.txt.size = len; *ptr += rr->rdlength; break; @@ -1686,8 +1687,9 @@ int get_one_resource_record(char *msg, char **ptr, dns_rr_t *rr, const char *en } break; case DNS_TYPE_NULL: - len = MIN(DNS_MAX_NAME-1, rr->rdlength-1); /*size=1byte*/ + len = MIN(DNS_MAX_NAME, rr->rdlength-1); /*size=1byte*/ memcpy(rr->rdata.null.null, *ptr+1, len); + rr->rdata.null.null[len]='\0'; rr->rdata.null.size = len; *ptr += rr->rdlength; break; |
