diff options
author | Nicolas Thill <nico@openwrt.org> | 2009-05-25 17:15:39 +0000 |
---|---|---|
committer | Nicolas Thill <nico@openwrt.org> | 2009-05-25 17:15:39 +0000 |
commit | e7133da4aada3f96f0e4a64a9858919ee36a2e0a (patch) | |
tree | 04f8e115af4d7639ce173efddf1022b215048390 /package/busybox/patches/803-id_getgrouplist.patch | |
parent | b90bd689a2df064438cc7b270270f322136aa7b2 (diff) | |
download | upstream-e7133da4aada3f96f0e4a64a9858919ee36a2e0a.tar.gz upstream-e7133da4aada3f96f0e4a64a9858919ee36a2e0a.tar.bz2 upstream-e7133da4aada3f96f0e4a64a9858919ee36a2e0a.zip |
busybox: update to v1.13.4 (closes: #4279)
SVN-Revision: 16063
Diffstat (limited to 'package/busybox/patches/803-id_getgrouplist.patch')
-rw-r--r-- | package/busybox/patches/803-id_getgrouplist.patch | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/package/busybox/patches/803-id_getgrouplist.patch b/package/busybox/patches/803-id_getgrouplist.patch new file mode 100644 index 0000000000..ddc89f269b --- /dev/null +++ b/package/busybox/patches/803-id_getgrouplist.patch @@ -0,0 +1,49 @@ +This patch disable supplementary groups handling in id with uClibc versions +prior to v0.9.30, which are lacking the 'getgrouplist' function. + +Signed-off-by: Nicolas Thill <nico@openwrt.org> + +--- a/coreutils/id.c ++++ b/coreutils/id.c +@@ -17,10 +17,12 @@ + + #include "libbb.h" + ++#define HAVE_GETGROUPLIST 1 ++ + #if !ENABLE_USE_BB_PWD_GRP + #if defined(__UCLIBC_MAJOR__) && (__UCLIBC_MAJOR__ == 0) + #if (__UCLIBC_MINOR__ < 9) || (__UCLIBC_MINOR__ == 9 && __UCLIBC_SUBLEVEL__ < 30) +-#error "Sorry, you need at least uClibc version 0.9.30 for id applet to build" ++#undef HAVE_GETGROUPLIST + #endif + #endif + #endif +@@ -86,7 +88,11 @@ static int get_groups(const char *userna + /* If the user is a member of more than + * *n groups, then -1 is returned. Otherwise >= 0. + * (and no defined way of detecting errors?!) */ ++#if HAVE_GETGROUPLIST + m = getgrouplist(username, rgid, groups, n); ++#else ++ *n = -1; ++#endif + /* I guess *n < 0 might indicate error. Anyway, + * malloc'ing -1 bytes won't be good, so: */ + //if (*n < 0) +@@ -160,6 +166,7 @@ int id_main(int argc UNUSED_PARAM, char + if (egid != rgid) + status |= print_group(egid, " "); + } ++#if HAVE_GETGROUPLIST + /* We are supplying largish buffer, trying + * to not run get_groups() twice. That might be slow + * ("user database in remote SQL server" case) */ +@@ -187,6 +194,7 @@ int id_main(int argc UNUSED_PARAM, char + } + if (ENABLE_FEATURE_CLEAN_UP) + free(groups); ++#endif + #if ENABLE_SELINUX + if (is_selinux_enabled()) { + if (getcon(&scontext) == 0) |