diff options
author | Ulrich Drepper <drepper@redhat.com> | 2007-08-22 16:04:18 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2007-08-22 16:04:18 +0000 |
commit | 0008163a30fec920ede228aea2f6e06e75e76514 (patch) | |
tree | 3a3c4d2ce46e456d1387b5c4f5ea92221f2f238e | |
parent | 2e0e1a0512c9886222dc32e1a791a7f6b5b69f68 (diff) | |
download | glibc-0008163a30fec920ede228aea2f6e06e75e76514.tar.gz glibc-0008163a30fec920ede228aea2f6e06e75e76514.tar.xz glibc-0008163a30fec920ede228aea2f6e06e75e76514.zip |
* nis/nis_table.c (nis_list): Don't fail if __follow_path returned
NIS_NOTFOUND.
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | nis/nis_table.c | 13 | ||||
-rw-r--r-- | string/strfry.c | 2 |
3 files changed, 15 insertions, 5 deletions
diff --git a/ChangeLog b/ChangeLog index 3436b76f64..f02bd4b998 100644 --- 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] diff --git a/nis/nis_table.c b/nis/nis_table.c index 70b4701419..3704b0094e 100644 --- a/nis/nis_table.c +++ b/nis/nis_table.c @@ -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; diff --git a/string/strfry.c b/string/strfry.c index a8b202d176..d392d5526b 100644 --- a/string/strfry.c +++ b/string/strfry.c @@ -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]; |