From 5c105d9f3fd086aff195d3849dcf847d6b0bd927 Mon Sep 17 00:00:00 2001 From: blogic Date: Fri, 5 Oct 2012 10:12:53 +0000 Subject: branch Attitude Adjustment git-svn-id: svn://svn.openwrt.org/openwrt/branches/attitude_adjustment@33625 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- package/busybox/patches/803-id_getgrouplist.patch | 49 +++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 package/busybox/patches/803-id_getgrouplist.patch (limited to 'package/busybox/patches/803-id_getgrouplist.patch') diff --git a/package/busybox/patches/803-id_getgrouplist.patch b/package/busybox/patches/803-id_getgrouplist.patch new file mode 100644 index 000000000..638305ee7 --- /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 + +--- a/coreutils/id.c ++++ b/coreutils/id.c +@@ -63,10 +63,12 @@ + + /* This is a NOEXEC applet. Be very careful! */ + ++#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 +@@ -128,7 +130,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) +@@ -210,6 +216,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) */ +@@ -236,6 +243,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) -- cgit v1.2.3