summaryrefslogtreecommitdiff
path: root/net-libs/libnfsidmap/files/libnfsidmap-0.19-getgrouplist.patch
diff options
context:
space:
mode:
Diffstat (limited to 'net-libs/libnfsidmap/files/libnfsidmap-0.19-getgrouplist.patch')
-rw-r--r--net-libs/libnfsidmap/files/libnfsidmap-0.19-getgrouplist.patch115
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