aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Weimer <fweimer@redhat.com>2017-09-06 15:20:25 +0200
committerFlorian Weimer <fweimer@redhat.com>2017-09-06 15:20:25 +0200
commit5670c4ab256114e869b1df4b05653aa5f909182c (patch)
tree59b44addcc1c16776c22cd44e1d41819e33673ff
parentc77eb96925b719001237ca7c9e3cef40d795d66b (diff)
downloadglibc-5670c4ab256114e869b1df4b05653aa5f909182c.zip
glibc-5670c4ab256114e869b1df4b05653aa5f909182c.tar.gz
glibc-5670c4ab256114e869b1df4b05653aa5f909182c.tar.bz2
resolv: Fix memory leak with OOM during resolv.conf parsing [BZ #22095]
-rw-r--r--ChangeLog6
-rw-r--r--resolv/res_init.c5
2 files changed, 11 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index d54e13d..298f0fd 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
2017-09-06 Florian Weimer <fweimer@redhat.com>
+ [BZ #22095]
+ * resolv/res_init.c (res_vinit_1): Avoid memory leak in case of
+ dynarray allocation failure.
+
+2017-09-06 Florian Weimer <fweimer@redhat.com>
+
Remove dead PTR IPv4-to-IPv6 mapping code from nss_dns.
* resolv/nss_dns/dns-host.c (getanswer_r): Remove dead code.
* resolv/tst-res_use_inet6.c (response_ptr_v4, response_ptr_v6):
diff --git a/resolv/res_init.c b/resolv/res_init.c
index fa46ce7..4e1f9fe 100644
--- a/resolv/res_init.c
+++ b/resolv/res_init.c
@@ -446,6 +446,11 @@ res_vinit_1 (FILE *fp, struct resolv_conf_parser *parser)
(&parser->nameserver_list);
if (p != NULL)
*p = sa;
+ else
+ {
+ free (sa);
+ return false;
+ }
}
continue;
}