* nis/nis_table.c (nis_list): Don't fail if __follow_path returned
authorUlrich Drepper <drepper@redhat.com>
Wed, 22 Aug 2007 16:04:18 +0000 (16:04 +0000)
committerUlrich Drepper <drepper@redhat.com>
Wed, 22 Aug 2007 16:04:18 +0000 (16:04 +0000)
NIS_NOTFOUND.

ChangeLog
nis/nis_table.c
string/strfry.c

index 3436b76..f02bd4b 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2007-08-17  Jakub Jelinek  <jakub@redhat.com>
+
+       * nis/nis_table.c (nis_list): Don't fail if __follow_path returned
+       NIS_NOTFOUND.
+
 2007-08-21  Ulrich Drepper  <drepper@redhat.com>
 
        [BZ #4566]
index 70b4701..3704b00 100644 (file)
@@ -372,7 +372,8 @@ nis_list (const_nis_name name, unsigned int flags,
                                             &bptr);
                if (clnt_status != NIS_SUCCESS)
                  {
-                   NIS_RES_STATUS (res) = clnt_status;
+                   if (clnt_status == NIS_NOMEMORY)
+                     NIS_RES_STATUS (res) = clnt_status;
                    ++done;
                  }
                else
@@ -452,10 +453,14 @@ nis_list (const_nis_name name, unsigned int flags,
                  ++done;
                else
                  {
-                   NIS_RES_STATUS (res)
+                   clnt_status
                      = __follow_path (&tablepath, &tableptr, ibreq, &bptr);
-                   if (NIS_RES_STATUS (res) != NIS_SUCCESS)
-                     ++done;
+                   if (clnt_status != NIS_SUCCESS)
+                     {
+                       if (clnt_status == NIS_NOMEMORY)
+                         NIS_RES_STATUS (res) = clnt_status;
+                       ++done;
+                     }
                  }
              }
            break;
index a8b202d..d392d55 100644 (file)
@@ -42,7 +42,7 @@ strfry (char *string)
     {
       int32_t j;
       __random_r (&rdata, &j);
-      j = j % len + 1;
+      j = j % (len - i) + i;
 
       char c = string[i];
       string[i] = string[j];