520e07da9c
- new command available: sudoreplay - use native audit support - corrected license field value: BSD -> ISC
40 lines
1.4 KiB
Diff
40 lines
1.4 KiB
Diff
diff -up sudo-1.7.4p4/configure.in.getgrouplist sudo-1.7.4p4/configure.in
|
|
--- sudo-1.7.4p4/configure.in.getgrouplist 2010-09-07 15:53:38.400260828 +0200
|
|
+++ sudo-1.7.4p4/configure.in 2010-09-07 15:54:48.751188374 +0200
|
|
@@ -1913,7 +1913,7 @@ AC_FUNC_GETGROUPS
|
|
AC_CHECK_FUNCS(strchr strrchr memchr memcpy memset sysconf tzset \
|
|
strftime setrlimit initgroups getgroups fstat gettimeofday \
|
|
regcomp setlocale getaddrinfo setenv vhangup \
|
|
- mbr_check_membership setrlimit64)
|
|
+ mbr_check_membership setrlimit64 getgrouplist)
|
|
AC_CHECK_FUNCS(getline, [], [
|
|
AC_LIBOBJ(getline)
|
|
AC_CHECK_FUNCS(fgetln)
|
|
diff -up sudo-1.7.4p4/pwutil.c.getgrouplist sudo-1.7.4p4/pwutil.c
|
|
--- sudo-1.7.4p4/pwutil.c.getgrouplist 2010-09-07 15:53:26.816198477 +0200
|
|
+++ sudo-1.7.4p4/pwutil.c 2010-09-07 15:54:16.990188543 +0200
|
|
@@ -628,5 +628,23 @@ user_in_group(pw, group)
|
|
}
|
|
#endif /* HAVE_MBR_CHECK_MEMBERSHIP */
|
|
|
|
+#ifdef HAVE_GETGROUPLIST
|
|
+ {
|
|
+ gid_t *grouplist, grouptmp;
|
|
+ int n_groups, i;
|
|
+ n_groups = 1;
|
|
+ if (getgrouplist(user_name, user_gid, &grouptmp, &n_groups) == -1) {
|
|
+ grouplist = (gid_t *) emalloc(sizeof(gid_t) * (n_groups + 1));
|
|
+ if (getgrouplist(user_name, user_gid, grouplist, &n_groups) > 0)
|
|
+ for (i = 0; i < n_groups; i++)
|
|
+ if (grouplist[i] == grp->gr_gid) {
|
|
+ free(grouplist);
|
|
+ return(TRUE);
|
|
+ }
|
|
+ free(grouplist);
|
|
+ }
|
|
+ }
|
|
+#endif /* HAVE_GETGROUPLIST */
|
|
+
|
|
return(FALSE);
|
|
}
|