diff options
Diffstat (limited to 'adig.c')
-rw-r--r-- | adig.c | 22 |
1 files changed, 17 insertions, 5 deletions
@@ -551,12 +551,20 @@ static const unsigned char *display_rr(const unsigned char *aptr, len = *p; if (p + len + 1 > aptr + dlen) return NULL; - printf("\t%.*s", (int)len, p + 1); - p += len + 1; + status = ares_expand_string(p, abuf, alen, &name.as_uchar, &len); + if (status != ARES_SUCCESS) + return NULL; + printf("\t%s", name.as_char); + ares_free_string(name.as_char); + p += len; len = *p; if (p + len + 1 > aptr + dlen) return NULL; - printf("\t%.*s", (int)len, p + 1); + status = ares_expand_string(p, abuf, alen, &name.as_uchar, &len); + if (status != ARES_SUCCESS) + return NULL; + printf("\t%s", name.as_char); + ares_free_string(name.as_char); break; case T_MINFO: @@ -623,8 +631,12 @@ static const unsigned char *display_rr(const unsigned char *aptr, len = *p; if (p + len + 1 > aptr + dlen) return NULL; - printf("\t%.*s", (int)len, p + 1); - p += len + 1; + status = ares_expand_string(p, abuf, alen, &name.as_uchar, &len); + if (status != ARES_SUCCESS) + return NULL; + printf("\t%s", name.as_char); + ares_free_string(name.as_char); + p += len; } break; |