projects
/
platform
/
upstream
/
c-ares.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
18b6d47
)
Do not leak rr_name on failures inside ares_parse_a_reply
author
Jakub Hrozek
<jhrozek@redhat.com>
Tue, 14 Jun 2011 14:48:26 +0000
(16:48 +0200)
committer
Jakub Hrozek
<jhrozek@redhat.com>
Tue, 14 Jun 2011 14:48:26 +0000
(16:48 +0200)
ares_parse_a_reply.c
patch
|
blob
|
history
diff --git
a/ares_parse_a_reply.c
b/ares_parse_a_reply.c
index 93012549c90f471fb4caa35478fd98067ea142e0..66d9bdf974d42c0abd40f1aba52c86a7fe8b4978 100644
(file)
--- a/
ares_parse_a_reply.c
+++ b/
ares_parse_a_reply.c
@@
-132,6
+132,7
@@
int ares_parse_a_reply(const unsigned char *abuf, int alen,
aptr += len;
if (aptr + RRFIXEDSZ > abuf + alen)
{
+ free(rr_name);
status = ARES_EBADRESP;
break;
}
@@
-149,6
+150,7
@@
int ares_parse_a_reply(const unsigned char *abuf, int alen,
{
if (aptr + sizeof(struct in_addr) > abuf + alen)
{
+ free(rr_name);
status = ARES_EBADRESP;
break;
}
@@
-159,6
+161,7
@@
int ares_parse_a_reply(const unsigned char *abuf, int alen,
struct ares_addrttl * const at = &addrttls[naddrs];
if (aptr + sizeof(struct in_addr) > abuf + alen)
{
+ free(rr_name);
status = ARES_EBADRESP;
break;
}