diff options
author | Ben Noordhuis <info@bnoordhuis.nl> | 2010-12-02 10:47:50 +0100 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2010-12-02 10:48:50 +0100 |
commit | 2c63440127feed70ccefb148b8f938a2df6c15f8 (patch) | |
tree | 872be414179ff321abedf7ef14013825fefa29a6 /ares_parse_a_reply.c | |
parent | 41b8a1bfd077ed0035d6bea42c70b1156b919dd5 (diff) | |
download | c-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.c | 4 |
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) { |