aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2007-08-22 16:04:18 +0000
committerUlrich Drepper <drepper@redhat.com>2007-08-22 16:04:18 +0000
commit0008163a30fec920ede228aea2f6e06e75e76514 (patch)
tree3a3c4d2ce46e456d1387b5c4f5ea92221f2f238e
parent2e0e1a0512c9886222dc32e1a791a7f6b5b69f68 (diff)
downloadglibc-0008163a30fec920ede228aea2f6e06e75e76514.tar
glibc-0008163a30fec920ede228aea2f6e06e75e76514.tar.gz
glibc-0008163a30fec920ede228aea2f6e06e75e76514.tar.bz2
glibc-0008163a30fec920ede228aea2f6e06e75e76514.zip
* nis/nis_table.c (nis_list): Don't fail if __follow_path returned
NIS_NOTFOUND.
-rw-r--r--ChangeLog5
-rw-r--r--nis/nis_table.c13
-rw-r--r--string/strfry.c2
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];