diff options
Diffstat (limited to 'src/dns.cpp')
| -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; |
