summaryrefslogtreecommitdiff
path: root/ares_parse_a_reply.c
diff options
context:
space:
mode:
authorBen Noordhuis <info@bnoordhuis.nl>2010-12-02 10:47:50 +0100
committerDaniel Stenberg <daniel@haxx.se>2010-12-02 10:48:50 +0100
commit2c63440127feed70ccefb148b8f938a2df6c15f8 (patch)
tree872be414179ff321abedf7ef14013825fefa29a6 /ares_parse_a_reply.c
parent41b8a1bfd077ed0035d6bea42c70b1156b919dd5 (diff)
downloadc-ares-2c63440127feed70ccefb148b8f938a2df6c15f8.tar.gz
c-ares-2c63440127feed70ccefb148b8f938a2df6c15f8.tar.bz2
c-ares-2c63440127feed70ccefb148b8f938a2df6c15f8.zip
ares_parse_a_reply: fix CNAME response parsing
Reply to a CNAME query doesn't contain addresses, causing ares_parse_a_reply() to bail out with ARES_ENODATA Bug: http://groups.google.com/group/nodejs/browse_thread/thread/a1268c9ea5e9ad9b
Diffstat (limited to 'ares_parse_a_reply.c')
-rw-r--r--ares_parse_a_reply.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/ares_parse_a_reply.c b/ares_parse_a_reply.c
index 86112d7..9301254 100644
--- a/ares_parse_a_reply.c
+++ b/ares_parse_a_reply.c
@@ -201,7 +201,9 @@ int ares_parse_a_reply(const unsigned char *abuf, int alen,
}
}
- if (status == ARES_SUCCESS && naddrs == 0)
+ if (status == ARES_SUCCESS && naddrs == 0 && naliases == 0)
+ /* the check for naliases to be zero is to make sure CNAME responses
+ don't get caught here */
status = ARES_ENODATA;
if (status == ARES_SUCCESS)
{