summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--adig.c22
1 files changed, 17 insertions, 5 deletions
diff --git a/adig.c b/adig.c
index 9a3922d..3a5c3da 100644
--- a/adig.c
+++ b/adig.c
@@ -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;