diff options
Diffstat (limited to 'nss')
-rw-r--r-- | nss/Makefile | 3 | ||||
-rw-r--r-- | nss/nss_dns/dns-host.c | 11 | ||||
-rw-r--r-- | nss/nss_files/files-netgrp.c | 5 |
3 files changed, 11 insertions, 8 deletions
diff --git a/nss/Makefile b/nss/Makefile index 319bad5b29..a921bb7fdf 100644 --- a/nss/Makefile +++ b/nss/Makefile @@ -55,7 +55,8 @@ libnss_dns-routines := dns-host dns-network libnss_db-routines := $(addprefix db-,$(filter-out hosts network,\ $(databases))) -generated += $(addsuffix .c,$(libnss_db-routines)) +generated += $(filter-out db-netgrp.c, \ + $(addsuffix .c,$(libnss_db-routines))) distribute += db-XXX.c libnss_files-inhibit-o = $(filter-out .so,$(object-suffixes)) diff --git a/nss/nss_dns/dns-host.c b/nss/nss_dns/dns-host.c index f8d5d37e72..120923069c 100644 --- a/nss/nss_dns/dns-host.c +++ b/nss/nss_dns/dns-host.c @@ -589,15 +589,12 @@ getanswer_r (const querybuf *answer, int anslen, const char *qname, int qtype, cp += n; continue; /* XXX - had_error++ ? */ } - if (haveanswer) + if (n != result->h_length) { - if (n != result->h_length) - { - cp += n; - continue; - } + cp += n; + continue; } - else + if (!haveanswer) { register int nn; diff --git a/nss/nss_files/files-netgrp.c b/nss/nss_files/files-netgrp.c index c653825c78..427c6bfe8d 100644 --- a/nss/nss_files/files-netgrp.c +++ b/nss/nss_files/files-netgrp.c @@ -188,6 +188,11 @@ _nss_netgroup_parseline (char **cursor, struct __netgrent *result, const char *host, *user, *domain; char *cp = *cursor; + /* Some sanity checks. */ + if (cp == NULL) + /* User bug. setnetgrent() wasn't called before. */ + abort (); + /* First skip leading spaces. */ while (isspace (*cp)) ++cp; |