changeset 9045:11f2466d2f5b

Don't let endgrent clobber errno, no matter how improbable. * lib/getugroups.c (getugroups): Save and restore errno around endgrent call.
author Jim Meyering <jim@meyering.net>
date Thu, 05 Jul 2007 08:06:33 +0000
parents 20fba8637b7d
children 0ba886329aae
files ChangeLog lib/getugroups.c
diffstat 2 files changed, 9 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
 2007-07-05  Jim Meyering  <jim@meyering.net>
 
+	Don't let endgrent clobber errno, no matter how improbable.
+	* lib/getugroups.c (getugroups): Save and restore errno around
+	endgrent call.
+
 	Close the group DB even when failing with 2^31 or more members.
 	* lib/getugroups.c (getugroups): Don't return without calling endgrent.
 
--- a/lib/getugroups.c
+++ b/lib/getugroups.c
@@ -99,7 +99,11 @@
     }
 
  done:
-  endgrent ();
+  {
+    int saved_errno = errno;
+    endgrent ();
+    errno = saved_errno;
+  }
 
   return count;
 }