FreeBSD Bugzilla – Attachment 112573 Details for
Bug 154000
[patch] Update net/nss-pam-ldapd
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
net-nss-pam-ldap.txt
net-nss-pam-ldap.txt (text/plain), 5.65 KB, created by
Tom Judge
on 2011-01-14 21:20:06 UTC
(
hide
)
Description:
net-nss-pam-ldap.txt
Filename:
MIME Type:
Creator:
Tom Judge
Created:
2011-01-14 21:20:06 UTC
Size:
5.65 KB
patch
obsolete
>Index: Makefile >=================================================================== >RCS file: /home/ncvs/ports/net/nss-pam-ldapd/Makefile,v >retrieving revision 1.6 >diff -u -r1.6 Makefile >--- Makefile 4 Nov 2010 22:29:15 -0000 1.6 >+++ Makefile 14 Jan 2011 17:23:51 -0000 >@@ -6,7 +6,7 @@ > # > > PORTNAME= nss-pam-ldapd >-PORTVERSION= 0.7.7 >+PORTVERSION= 0.7.13 > CATEGORIES= net > MASTER_SITES= http://arthurdejong.org/nss-pam-ldapd/ \ > http://static.ipfw.ru/files/ >@@ -42,7 +42,8 @@ > > CONFIGURE_ARGS+= --with-nslcd-pidfile=${NSLCD_PIDFILE} \ > --with-nslcd-socket=${NSLCD_SOCKET} \ >- --with-ldap-lib=openldap --disable-kerberos >+ --with-ldap-lib=openldap --disable-kerberos \ >+ --with-nss-ldap-soname=nss_ldap.so.1 > > .if defined(WITHOUT_NSS) > .undef NSS_COMPAT >Index: distinfo >=================================================================== >RCS file: /home/ncvs/ports/net/nss-pam-ldapd/distinfo,v >retrieving revision 1.4 >diff -u -r1.4 distinfo >--- distinfo 15 Jul 2010 22:51:59 -0000 1.4 >+++ distinfo 14 Jan 2011 17:07:23 -0000 >@@ -1,3 +1,2 @@ >-MD5 (nss-pam-ldapd-0.7.7.tar.gz) = 7b37cc13b465495f90248e1209a05595 >-SHA256 (nss-pam-ldapd-0.7.7.tar.gz) = fd6397990595243d3116fed2da409f582187329cc42794af2e47943a66ed363d >-SIZE (nss-pam-ldapd-0.7.7.tar.gz) = 457607 >+SHA256 (nss-pam-ldapd-0.7.13.tar.gz) = 1bdba144669ac3220162d59bafe5ba4f83404f520bc9ead58b179745c82b8d4a >+SIZE (nss-pam-ldapd-0.7.13.tar.gz) = 478944 >Index: pkg-plist >=================================================================== >RCS file: /home/ncvs/ports/net/nss-pam-ldapd/pkg-plist,v >retrieving revision 1.3 >diff -u -r1.3 pkg-plist >--- pkg-plist 15 Jul 2010 22:51:59 -0000 1.3 >+++ pkg-plist 14 Jan 2011 17:43:55 -0000 >@@ -1,3 +1,4 @@ >+@unexec if cmp -s %D/etc/%%CONFIG%%.sample %D/etc/%%CONFIG%%; then rm -f %D/etc/%%CONFIG%%; fi > etc/%%CONFIG%%.sample > %%NSS%%lib/nss_ldap.so.1 > %%NSLCD%%sbin/nslcd >Index: files/patch-nss__bsdnss.c >=================================================================== >RCS file: /home/ncvs/ports/net/nss-pam-ldapd/files/patch-nss__bsdnss.c,v >retrieving revision 1.2 >diff -u -r1.2 patch-nss__bsdnss.c >--- files/patch-nss__bsdnss.c 9 Jan 2010 22:45:55 -0000 1.2 >+++ files/patch-nss__bsdnss.c 14 Jan 2011 20:47:11 -0000 >@@ -1,12 +1,15 @@ >---- nss/bsdnss.c.orig 2009-08-10 16:06:22.000000000 +0000 >-+++ nss/bsdnss.c 2009-08-10 15:58:04.000000000 +0000 >-@@ -0,0 +1,157 @@ >+--- /dev/null 2011-01-14 20:44:13.000000000 +0000 >++++ nss/bsdnss.c 2011-01-14 20:33:39.000000000 +0000 >+@@ -0,0 +1,234 @@ >++#include <stdio.h> >++#include <stdlib.h> > +#include <errno.h> > +#include <sys/param.h> > +#include <netinet/in.h> > +#include <pwd.h> > +#include <grp.h> > +#include <nss.h> >++#include <nsswitch.h> > +#include <netdb.h> > + > +#define BUFFER_SIZE 1024 >@@ -39,12 +42,15 @@ > +extern enum nss_status _nss_ldap_gethostbyaddr_r (struct in_addr * addr, int len, int type, > + struct hostent * result, char *buffer, > + size_t buflen, int *errnop, int *h_errnop); >++extern enum nss_status _nss_ldap_initgroups_dyn(const char *, gid_t, long int *, >++ long int *, gid_t **, long int, int *); > + > +NSS_METHOD_PROTOTYPE(__nss_compat_getgrnam_r); > +NSS_METHOD_PROTOTYPE(__nss_compat_getgrgid_r); > +NSS_METHOD_PROTOTYPE(__nss_compat_getgrent_r); > +NSS_METHOD_PROTOTYPE(__nss_compat_setgrent); > +NSS_METHOD_PROTOTYPE(__nss_compat_endgrent); >++static NSS_METHOD_PROTOTYPE(__freebsd_getgroupmembership); > + > +NSS_METHOD_PROTOTYPE(__nss_compat_getpwnam_r); > +NSS_METHOD_PROTOTYPE(__nss_compat_getpwuid_r); >@@ -62,6 +68,7 @@ > +{ NSDB_GROUP, "getgrent_r", __nss_compat_getgrent_r, _nss_ldap_getgrent_r }, > +{ NSDB_GROUP, "setgrent", __nss_compat_setgrent, _nss_ldap_setgrent }, > +{ NSDB_GROUP, "endgrent", __nss_compat_endgrent, _nss_ldap_endgrent }, >++{ NSDB_GROUP, "getgroupmembership", __freebsd_getgroupmembership, NULL }, > + > +{ NSDB_PASSWD, "getpwnam_r", __nss_compat_getpwnam_r, _nss_ldap_getpwnam_r }, > +{ NSDB_PASSWD, "getpwuid_r", __nss_compat_getpwuid_r, _nss_ldap_getpwuid_r }, >@@ -150,6 +157,76 @@ > + return (status); > +} > + >++static int >++__gr_addgid(gid_t gid, gid_t *groups, int maxgrp, int *groupc) >++{ >++ int ret, dupc; >++ >++ /* skip duplicates */ >++ for (dupc = 0; dupc < MIN(maxgrp, *groupc); dupc++) { >++ if (groups[dupc] == gid) >++ return 1; >++ } >++ >++ ret = 1; >++ if (*groupc < maxgrp) /* add this gid */ >++ groups[*groupc] = gid; >++ else >++ ret = 0; >++ (*groupc)++; >++ return ret; >++} >++ >++static int >++__freebsd_getgroupmembership(void *retval, void *mdata, va_list ap) >++{ >++ >++ int err; >++ enum nss_status s; >++ gid_t group; >++ gid_t *tmpgroups; >++ size_t bufsize; >++ const char *user; >++ gid_t *groups; >++ gid_t agroup; >++ int maxgrp, *grpcnt; >++ int i, rv, ret_errno; >++ long int lstart, lsize; >++ >++ >++ user = va_arg(ap, const char *); >++ group = va_arg(ap, gid_t); >++ groups = va_arg(ap, gid_t *); >++ maxgrp = va_arg(ap, int); >++ grpcnt = va_arg(ap, int *); >++ >++ >++ tmpgroups = malloc(maxgrp * sizeof(gid_t)); >++ if (tmpgroups == NULL) { >++ printf("Tried to mallog %u * %u\n", maxgrp, sizeof(gid_t)); >++ return NS_TRYAGAIN; >++ } >++ >++ /* insert primary membership */ >++ __gr_addgid(group, groups, maxgrp, grpcnt); >++ >++ lstart = 0; >++ lsize = maxgrp; >++ s = _nss_ldap_initgroups_dyn(user, group, &lstart, &lsize, >++ &tmpgroups, 0, &err); >++ if (s == NSS_STATUS_SUCCESS) { >++ for (i = 0; i < lstart; i++) >++ if (! __gr_addgid(tmpgroups[i], groups, maxgrp, grpcnt)) { >++ ;; >++ } >++ s = NSS_STATUS_NOTFOUND; >++ } >++ >++ free(tmpgroups); >++ >++ return __nss_compat_result(s, 0); >++} >++ > +ns_mtab * > +nss_module_register(const char *source, unsigned int *mtabsize, > + nss_module_unregister_fn *unreg)
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Actions:
View
Attachments on
bug 154000
: 112573