diff options
Diffstat (limited to 'net-libs/libnfsidmap/files')
-rw-r--r-- | net-libs/libnfsidmap/files/libnfsidmap-0.19-getgrouplist.patch | 115 |
1 files changed, 0 insertions, 115 deletions
diff --git a/net-libs/libnfsidmap/files/libnfsidmap-0.19-getgrouplist.patch b/net-libs/libnfsidmap/files/libnfsidmap-0.19-getgrouplist.patch deleted file mode 100644 index 0d5d367b95b4..000000000000 --- a/net-libs/libnfsidmap/files/libnfsidmap-0.19-getgrouplist.patch +++ /dev/null @@ -1,115 +0,0 @@ -http://bugs.gentoo.org/169909 - ---- libnfsidmap-0.19/configure.in -+++ libnfsidmap-0.19/configure.in -@@ -38,7 +38,7 @@ - - # Checks for library functions. - AC_FUNC_MALLOC --AC_CHECK_FUNCS([strchr strdup]) -+AC_CHECK_FUNCS([strchr strdup getgrouplist]) - - AC_CONFIG_FILES([Makefile]) - AC_OUTPUT(libnfsidmap.pc) ---- libnfsidmap-0.19/nss.c -+++ libnfsidmap-0.19/nss.c -@@ -49,6 +49,8 @@ - #include "cfg.h" - #include <syslog.h> - -+#include "getgrouplist.c" -+ - /* - * NSS Translation Methods - * ---- libnfsidmap-0.19/getgrouplist.c -+++ libnfsidmap-0.19/getgrouplist.c -@@ -0,0 +1,88 @@ -+/* -+ * getgrouplist.c -+ * -+ * if system does not provide the non-standard getgrouplist, we will emulate -+ * it via POSIX standard functions -+ * -+ * Copyright (c) 1991, 1993 -+ * The Regents of the University of California. All rights reserved. -+ * -+ * Redistribution and use in source and binary forms, with or without -+ * modification, are permitted provided that the following conditions -+ * are met: -+ * 1. Redistributions of source code must retain the above copyright -+ * notice, this list of conditions and the following disclaimer. -+ * 2. Redistributions in binary form must reproduce the above copyright -+ * notice, this list of conditions and the following disclaimer in the -+ * documentation and/or other materials provided with the distribution. -+ * 4. Neither the name of the University nor the names of its contributors -+ * may be used to endorse or promote products derived from this software -+ * without specific prior written permission. -+ * -+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND -+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -+ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE -+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -+ * SUCH DAMAGE. -+ */ -+ -+#ifdef HAVE_CONFIG_H -+#include "config.h" -+#endif -+#include <sys/types.h> -+#include <grp.h> -+#include <string.h> -+#include <unistd.h> -+ -+#ifndef HAVE_GETGROUPLIST -+static -+int -+getgrouplist(const char *uname, gid_t agroup, gid_t *groups, int *grpcnt) -+{ -+ const struct group *grp; -+ int i, maxgroups, ngroups, ret; -+ -+ ret = 0; -+ ngroups = 0; -+ maxgroups = *grpcnt; -+ /* -+ * When installing primary group, duplicate it; -+ * the first element of groups is the effective gid -+ * and will be overwritten when a setgid file is executed. -+ */ -+ groups[ngroups++] = agroup; -+ if (maxgroups > 1) -+ groups[ngroups++] = agroup; -+ /* -+ * Scan the group file to find additional groups. -+ */ -+ setgrent(); -+ while ((grp = getgrent()) != NULL) { -+ for (i = 0; i < ngroups; i++) { -+ if (grp->gr_gid == groups[i]) -+ goto skip; -+ } -+ for (i = 0; grp->gr_mem[i]; i++) { -+ if (!strcmp(grp->gr_mem[i], uname)) { -+ if (ngroups >= maxgroups) { -+ ret = -1; -+ break; -+ } -+ groups[ngroups++] = grp->gr_gid; -+ break; -+ } -+ } -+skip: -+ ; -+ } -+ endgrent(); -+ *grpcnt = ngroups; -+ return (ret); -+} -+#endif |