components/sudo/patches/getgrset.patch
branchs11u1-sru
changeset 2570 40da38c985e9
parent 2567 333785b27b31
child 2571 9f80a44ee83a
--- a/components/sudo/patches/getgrset.patch	Fri Apr 12 18:35:54 2013 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,55 +0,0 @@
-This patch is using solaris private interface _getgroupsbymember(). We should
-switch to similar public interface once Solaris has one.
-
---- sudo-1.8.4p5/compat/getgrouplist.c	Sat Jan 19 22:45:01 2013
-+++ sudo-1.8.4p5/compat/getgrouplist.c	Sat Jan 19 22:44:59 2013
-@@ -36,6 +36,15 @@
- 
- #include "missing.h"
- 
-+#ifdef HAVE__GETGRPSBYMEMBER
-+extern int _getgroupsbymember
-+(
-+    const char* username, gid_t gid_array[],
-+    int maxgids, int numgids
-+); 
-+#endif /* HAVE__GETGRPSBYMEMBER */
-+
-+
- #ifdef HAVE_GETGRSET
- /*
-  * BSD-compatible getgrouplist(3) using getgrset(3)
-@@ -81,6 +90,25 @@
- 
- #else /* HAVE_GETGRSET */
- 
-+#ifdef HAVE__GETGRPSBYMEMBER
-+int
-+getgrouplist(const char *name, gid_t basegid, gid_t *groups, int *ngroupsp)
-+{
-+    int grpsize = *ngroupsp;
-+
-+    if (grpsize <= 0)
-+	return -1;
-+    groups[0] = basegid;
-+
-+    if ((grpsize = _getgroupsbymember(name, groups, grpsize, 1)) == -1)
-+	return -1;
-+
-+    *ngroupsp = grpsize;
-+    return 0;
-+}
-+
-+#else /* ! HAVE__GETGRPSBYMEMBER */
-+
- /*
-  * BSD-compatible getgrouplist(3) using getgrent(3)
-  */
-@@ -128,4 +156,7 @@
- 
-     return rval;
- }
-+
-+#endif /* ! HAVE__GETGRPSBYMEMBER */
-+
- #endif /* HAVE_GETGRSET */