fix bug for dig command

This commit is contained in:
Nick Peng
2018-12-21 20:31:59 +08:00
parent 26b33371a3
commit d3b67c3ed4

View File

@@ -913,6 +913,7 @@ static int _dns_decode_domain(struct dns_context *context, char *output, int siz
static int _dns_encode_domain(struct dns_context *context, char *domain) static int _dns_encode_domain(struct dns_context *context, char *domain)
{ {
int num = 0; int num = 0;
int total_len = 0;
unsigned char *ptr_num = context->ptr++; unsigned char *ptr_num = context->ptr++;
/*[len]string[len]string...[0]0 */ /*[len]string[len]string...[0]0 */
@@ -929,12 +930,15 @@ static int _dns_encode_domain(struct dns_context *context, char *domain)
num++; num++;
context->ptr++; context->ptr++;
domain++; domain++;
total_len++;
} }
*ptr_num = num; *ptr_num = num;
/* if domain is '\0', [domain] is '\0' */ if (total_len > 0) {
*(context->ptr) = 0; /* if domain is '\0', [domain] is '\0' */
context->ptr++; *(context->ptr) = 0;
context->ptr++;
}
return 0; return 0;
} }