diff options
author | Florian Weimer <fweimer@redhat.com> | 2014-12-15 17:41:13 +0100 |
---|---|---|
committer | Adhemerval Zanella <azanella@linux.vnet.ibm.com> | 2015-01-15 15:25:54 -0500 |
commit | c7093fd0fedd8a0b4ed5b01347e3798219ba22ec (patch) | |
tree | 65e937720d2823f39c83fede4b89a810bd3bfa02 | |
parent | c9b43ec3890d5c750a5127a543a55cd94aa73c94 (diff) | |
download | glibc-c7093fd0fedd8a0b4ed5b01347e3798219ba22ec.tar glibc-c7093fd0fedd8a0b4ed5b01347e3798219ba22ec.tar.gz glibc-c7093fd0fedd8a0b4ed5b01347e3798219ba22ec.tar.bz2 glibc-c7093fd0fedd8a0b4ed5b01347e3798219ba22ec.zip |
Avoid infinite loop in nss_dns getnetbyname [BZ #17630]
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | NEWS | 5 | ||||
-rw-r--r-- | resolv/nss_dns/dns-network.c | 4 |
3 files changed, 12 insertions, 3 deletions
@@ -1,3 +1,9 @@ +2014-12-16 Florian Weimer <fweimer@redhat.com> + + [BZ #17630] + * resolv/nss_dns/dns-network.c (getanswer_r): Iterate over alias + names. + 2014-12-15 Jeff Law <law@redhat.com> [BZ #16617] @@ -10,7 +10,10 @@ Version 2.16.1 * The following bugs are resolved with this release: 6530, 14195, 14547, 14459, 14476, 14562, 14621, 14648, 14699, 14756, 14831, - 15078, 15754, 15755, 16072, 16617, 17048, 17137, 17187, 17325. + 15078, 15754, 15755, 16072, 16617, 17048, 17137, 17187, 17325, 17630. + +* The nss_dns implementation of getnetbyname could run into an infinite loop + if the DNS response contained a PTR record of an unexpected format. * CVE-2012-3406 printf-style functions could run into a stack overflow when processing format strings with a large number of format specifiers. diff --git a/resolv/nss_dns/dns-network.c b/resolv/nss_dns/dns-network.c index 4c590babae..d101306099 100644 --- a/resolv/nss_dns/dns-network.c +++ b/resolv/nss_dns/dns-network.c @@ -398,8 +398,8 @@ getanswer_r (const querybuf *answer, int anslen, struct netent *result, case BYNAME: { - char **ap = result->n_aliases++; - while (*ap != NULL) + char **ap; + for (ap = result->n_aliases; *ap != NULL; ++ap) { /* Check each alias name for being of the forms: 4.3.2.1.in-addr.arpa = net 1.2.3.4 |