summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog4
-rw-r--r--nis/nss_nis/nis-rpc.c4
-rw-r--r--nis/nss_nis/nis-service.c4
3 files changed, 12 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index c3d9a0b50e..9dd545dc7e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
 2006-08-19  Ulrich Drepper  <drepper@redhat.com>
 
+	* nis/nss_nis/nis-service.c (internal_nis_getservent_r): . If map
+	is empty simply return and use next service.
+	* nis/nss_nis/nis-rpc.c (internal_nis_getrpcent_r): Likewise.
+
 	* locale/programs/charmap.c (charmap_read): Add new parameter.  It
 	tells us when not finding a charmap file is an error.
 	* locale/programs/charmap.h: Adjust charmap_read prototype.
diff --git a/nis/nss_nis/nis-rpc.c b/nis/nss_nis/nis-rpc.c
index e7049ffa9f..2fdb16ddde 100644
--- a/nis/nss_nis/nis-rpc.c
+++ b/nis/nss_nis/nis-rpc.c
@@ -117,6 +117,10 @@ internal_nis_getrpcent_r (struct rpcent *rpc, char *buffer, size_t buflen,
   if (intern->start == NULL)
     internal_nis_setrpcent (intern);
 
+  if (intern->next == NULL)
+    /* Not one entry in the map.  */
+    return NSS_STATUS_NOTFOUND;
+
   /* Get the next entry until we found a correct one. */
   do
     {
diff --git a/nis/nss_nis/nis-service.c b/nis/nss_nis/nis-service.c
index c0e064d9a4..0c176095c8 100644
--- a/nis/nss_nis/nis-service.c
+++ b/nis/nss_nis/nis-service.c
@@ -188,6 +188,10 @@ internal_nis_getservent_r (struct servent *serv, char *buffer,
   if (intern.start == NULL)
     internal_nis_setservent ();
 
+  if (intern.next == NULL)
+    /* Not one entry in the map.  */
+    return NSS_STATUS_NOTFOUND;
+
   /* Get the next entry until we found a correct one.  */
   do
     {