rpms/nss_ldap/devel nss_ldap-259-parse2.patch, NONE, 1.1 nss_ldap.spec, 1.90, 1.91 nss_ldap-246-parse.patch, 1.1, NONE nss_ldap-250-mock64.patch, 1.1, NONE nss_ldap-256-resolver.patch, 1.1, NONE nss_ldap-257-slash.patch, 1.1, NONE
Nalin Somabhai Dahyabhai (nalin)
fedora-extras-commits at redhat.com
Tue Feb 26 20:52:38 UTC 2008
Author: nalin
Update of /cvs/pkgs/rpms/nss_ldap/devel
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv2781
Modified Files:
nss_ldap.spec
Added Files:
nss_ldap-259-parse2.patch
Removed Files:
nss_ldap-246-parse.patch nss_ldap-250-mock64.patch
nss_ldap-256-resolver.patch nss_ldap-257-slash.patch
Log Message:
- update to nss_ldap 259
- update to revised proposed patch for #248
nss_ldap-259-parse2.patch:
--- NEW FILE nss_ldap-259-parse2.patch ---
diff -up nss_ldap-259/configure.in nss_ldap-259/configure.in
--- nss_ldap-259/configure.in 2008-02-26 13:58:44.000000000 -0500
+++ nss_ldap-259/configure.in 2008-02-26 13:34:06.000000000 -0500
@@ -278,6 +278,11 @@ if test -z "$with_ldap_lib"; then
with_ldap_lib=auto
fi
+AC_CHECK_SIZEOF([unsigned int])
+AC_CHECK_SIZEOF([unsigned long])
+AC_CHECK_SIZEOF([uid_t],,[#include <pwd.h>])
+AC_CHECK_SIZEOF([gid_t],,[#include <grp.h>])
+
AC_CHECK_LIB(dl, dlopen,[LIBS="-ldl $LIBS"],,$LIBS)
dnl AC_CHECK_LIB(db, main,[LIBS="-ldb $LIBS"],,$LIBS)
diff -up nss_ldap-259/ldap-nss.h nss_ldap-259/ldap-nss.h
--- nss_ldap-259/ldap-nss.h 2007-10-29 09:30:12.000000000 -0400
+++ nss_ldap-259/ldap-nss.h 2008-02-26 14:09:01.000000000 -0500
@@ -863,11 +863,11 @@ NSS_STATUS _nss_ldap_assign_userpassword
NSS_STATUS _nss_ldap_oc_check (LDAPMessage * e, const char *oc);
+NSS_STATUS _nss_ldap_shadow_date(const char *val, long default_date,
+ long *value);
#if defined(HAVE_SHADOW_H)
-int _nss_ldap_shadow_date(const char *val);
void _nss_ldap_shadow_handle_flag(struct spwd *sp);
#else
-#define _nss_ldap_shadow_date(_v) atol((_v))
#define _nss_ldap_shadow_handle_flag(_sp) do { /* nothing */ } while (0)
#endif /* HAVE_SHADOW_H */
diff -up nss_ldap-259/ldap-nss.c nss_ldap-259/ldap-nss.c
--- nss_ldap-259/ldap-nss.c 2007-10-29 09:30:12.000000000 -0400
+++ nss_ldap-259/ldap-nss.c 2008-02-26 14:09:14.000000000 -0500
@@ -3810,22 +3810,36 @@ _nss_ldap_oc_check (LDAPMessage * e, con
}
#ifdef HAVE_SHADOW_H
-int
-_nss_ldap_shadow_date (const char *val)
+NSS_STATUS
+_nss_ldap_shadow_date (const char *val, long default_date, long *value)
{
int date;
+ char *p;
+ long long ll;
+ if ((val == NULL) || (strlen(val) == 0))
+ {
+ *value = default_date;
+ return NSS_NOTFOUND;
+ }
+ ll = strtoll(val, &p, 10);
+ if ((p == NULL) || (p == val) || (*p != '\0'))
+ {
+ *value = default_date;
+ return NSS_NOTFOUND;
+ }
if (__config->ldc_shadow_type == LS_AD_SHADOW)
{
- date = atoll (val) / 864000000000LL - 134774LL;
+ date = ll / 864000000000LL - 134774LL;
date = (date > 99999) ? 99999 : date;
}
else
{
- date = atol (val);
+ date = ll;
}
- return date;
+ *value = date;
+ return NSS_SUCCESS;
}
void
diff -up nss_ldap-259/aix_authmeth.c nss_ldap-259/aix_authmeth.c
--- nss_ldap-259/aix_authmeth.c 2007-10-29 09:30:12.000000000 -0400
+++ nss_ldap-259/aix_authmeth.c 2008-02-26 14:04:12.000000000 -0500
@@ -381,7 +381,12 @@ uess_get_pgrp (LDAPMessage * e, ldap_ues
LA_INIT (a);
LA_TYPE (a) = LA_TYPE_NUMBER;
- LA_NUMBER (a) = atol(vals[0]);
+ stat = _nss_ldap_parse_long (vals[0], 0, &(LA_NUMBER(a)));
+ if (stat != NSS_SUCCESS)
+ {
+ ldap_value_free (vals);
+ return NSS_NOTFOUND;
+ }
attrs[0] = ATM (LM_GROUP, cn);
attrs[1] = NULL;
@@ -543,9 +548,12 @@ uess_get_int (LDAPMessage * e, ldap_uess
return NSS_NOTFOUND;
}
- av->attr_un.au_int = atoi (vals[0]);
+ stat = _nss_ldap_parse_int(vals[0], 0, &av->attr_un.au_int);
ldap_value_free (vals);
- return NSS_SUCCESS;
+ if (stat == NSS_SUCCESS)
+ return NSS_SUCCESS;
+ else
+ return NSS_NOTFOUND;
}
/*
@@ -869,12 +877,15 @@ uess_get_pwuid(const char *user, uid_t *
return NSS_NOTFOUND;
}
- *uid = atoi(vals[0]);
+ stat = _nss_ldap_parse_uid_t (vals[0], 0, uid);
ldap_value_free (vals);
ldap_msgfree (res);
- return NSS_SUCCESS;
+ if (stat == 0)
+ return NSS_SUCCESS;
+ else
+ return NSS_NOTFOUND;
}
/*
diff -up nss_ldap-259/ldap-rpc.c nss_ldap-259/ldap-rpc.c
--- nss_ldap-259/ldap-rpc.c 2007-10-29 09:30:12.000000000 -0400
+++ nss_ldap-259/ldap-rpc.c 2008-02-26 13:56:34.000000000 -0500
@@ -95,7 +95,10 @@ _nss_ldap_parse_rpc (LDAPMessage * e,
if (stat != NSS_SUCCESS)
return stat;
- rpc->r_number = atol (number);
+ stat =
+ _nss_ldap_parse_int (number, 0, &rpc->r_number);
+ if (stat != NSS_SUCCESS)
+ return stat;
stat =
_nss_ldap_assign_attrvals (e, ATM (LM_RPC, cn), rpc->r_name,
diff -up nss_ldap-259/util.h nss_ldap-259/util.h
--- nss_ldap-259/util.h 2007-10-29 09:30:12.000000000 -0400
+++ nss_ldap-259/util.h 2008-02-26 13:53:10.000000000 -0500
@@ -224,4 +224,16 @@ _nss_ldap_add_uri (ldap_config_t *result
ldap_map_selector_t
_nss_ldap_str2selector (const char *key);
+NSS_STATUS
+_nss_ldap_parse_long (const char *text, long default_value, long *value);
+NSS_STATUS
+_nss_ldap_parse_ulong (const char *text, unsigned long default_value,
+ unsigned long *value);
+NSS_STATUS
+_nss_ldap_parse_int (const char *text, int default_value, int *value);
+NSS_STATUS
+_nss_ldap_parse_uid_t (const char *text, uid_t default_value, uid_t *value);
+NSS_STATUS
+_nss_ldap_parse_gid_t (const char *text, gid_t default_value, gid_t *value);
+
#endif /* _LDAP_NSS_LDAP_UTIL_H */
diff -up nss_ldap-259/ldap-service.c nss_ldap-259/ldap-service.c
--- nss_ldap-259/ldap-service.c 2007-10-29 09:30:12.000000000 -0400
+++ nss_ldap-259/ldap-service.c 2008-02-26 13:36:15.000000000 -0500
@@ -182,7 +182,10 @@ _nss_ldap_parse_serv (LDAPMessage * e,
return stat;
}
- service->s_port = htons (atoi (port));
+ stat =
+ _nss_ldap_parse_int (port, 0, &service->s_port);
+ if (stat != NSS_SUCCESS)
+ return stat;
return NSS_SUCCESS;
}
diff -up nss_ldap-259/util.c nss_ldap-259/util.c
--- nss_ldap-259/util.c 2007-10-29 09:30:12.000000000 -0400
+++ nss_ldap-259/util.c 2008-02-26 13:53:53.000000000 -0500
@@ -1634,3 +1634,111 @@ NSS_STATUS _nss_ldap_validateconfig (lda
return NSS_SUCCESS;
}
+/* Parse a text string into a long integer. If we fail for any reason, store
+ * the passed-in default value and return an error. */
+NSS_STATUS
+_nss_ldap_parse_long (const char *text, long default_value, long *value)
+{
+ char *p;
+ long l;
+ if ((text == NULL) || (strlen(text) == 0)) {
+ *value = default_value;
+ return NSS_STATUS_NOTFOUND;
+ }
+ l = strtol(text, &p, 10);
+ if ((p == NULL) || (p == text) || (*p != '\0')) {
+ *value = default_value;
+ return NSS_STATUS_NOTFOUND;
+ }
+ *value = l;
+ return NSS_STATUS_SUCCESS;
+}
+
+NSS_STATUS
+_nss_ldap_parse_ulong (const char *text, unsigned long default_value,
+ unsigned long *value)
+{
+ char *p;
+ unsigned long l;
+ if ((text == NULL) || (strlen(text) == 0)) {
+ *value = default_value;
+ return NSS_STATUS_NOTFOUND;
+ }
+ l = strtoul(text, &p, 10);
+ if ((p == NULL) || (p == text) || (*p != '\0')) {
+ *value = default_value;
+ return NSS_STATUS_NOTFOUND;
+ }
+ *value = l;
+ return NSS_STATUS_SUCCESS;
+}
+
+NSS_STATUS
+_nss_ldap_parse_int (const char *text, int default_value, int *value)
+{
+ char *p;
+ long l;
+ if ((text == NULL) || (strlen(text) == 0)) {
+ *value = default_value;
+ return NSS_STATUS_NOTFOUND;
+ }
+ l = strtol(text, &p, 10);
+ if ((p == NULL) || (p == text) || (*p != '\0')) {
+ *value = default_value;
+ return NSS_STATUS_NOTFOUND;
+ }
+ if ((l < INT_MIN) || (l > INT_MAX)) {
+ *value = default_value;
+ return NSS_STATUS_NOTFOUND;
+ }
+ *value = l;
+ return NSS_STATUS_SUCCESS;
+}
+
+NSS_STATUS
+_nss_ldap_parse_uid_t (const char *text, uid_t default_value, uid_t *value)
+{
+ char *p;
+ unsigned long l;
+ if ((text == NULL) || (strlen(text) == 0)) {
+ *value = default_value;
+ return NSS_STATUS_NOTFOUND;
+ }
+ l = strtoul(text, &p, 10);
+ if ((p == NULL) || (p == text) || (*p != '\0')) {
+ *value = default_value;
+ return NSS_STATUS_NOTFOUND;
+ }
+#if SIZEOF_UID_T == SIZEOF_UNSIGNED_INT
+ if (l > UINT_MAX) {
+ *value = default_value;
+ return NSS_STATUS_NOTFOUND;
+ }
+#endif
+ *value = l;
+ return NSS_STATUS_SUCCESS;
+}
+
+NSS_STATUS
+_nss_ldap_parse_gid_t (const char *text, gid_t default_value, gid_t *value)
+{
+ char *p;
+ unsigned long l;
+ if ((text == NULL) || (strlen(text) == 0)) {
+ *value = default_value;
+ return NSS_STATUS_NOTFOUND;
+ }
+ l = strtoul(text, &p, 10);
+ if ((p == NULL) || (p == text) || (*p != '\0')) {
+ *value = default_value;
+ return NSS_STATUS_NOTFOUND;
+ }
+#if SIZEOF_GID_T == SIZEOF_UNSIGNED_INT
+ if (l > UINT_MAX) {
+ *value = default_value;
+ return NSS_STATUS_NOTFOUND;
+ }
+#endif
+ *value = l;
+ return NSS_STATUS_SUCCESS;
+}
diff -up nss_ldap-259/ldap-pwd.c nss_ldap-259/ldap-pwd.c
--- nss_ldap-259/ldap-pwd.c 2007-10-29 09:30:12.000000000 -0400
+++ nss_ldap-259/ldap-pwd.c 2008-02-26 13:51:27.000000000 -0500
@@ -122,7 +122,15 @@ _nss_ldap_parse_pw (LDAPMessage * e,
_nss_ldap_assign_attrval (e, AT (uidNumber), &uid, &tmp, &tmplen);
if (stat != NSS_SUCCESS)
return stat;
- pw->pw_uid = (*uid == '\0') ? UID_NOBODY : (uid_t) atol (uid);
+ if (*uid == '\0')
+ pw->pw_uid = UID_NOBODY;
+ else
+ {
+ stat =
+ _nss_ldap_parse_uid_t (uid, UID_NOBODY, &pw->pw_uid);
+ if (stat != NSS_SUCCESS)
+ return stat;
+ }
tmp = tmpbuf;
tmplen = sizeof (tmpbuf);
@@ -131,7 +139,15 @@ _nss_ldap_parse_pw (LDAPMessage * e,
&tmplen);
if (stat != NSS_SUCCESS)
return stat;
- pw->pw_gid = (*gid == '\0') ? GID_NOBODY : (gid_t) atol (gid);
+ if (*gid == '\0')
+ pw->pw_gid = GID_NOBODY;
+ else
+ {
+ stat =
+ _nss_ldap_parse_gid_t (gid, GID_NOBODY, &pw->pw_gid);
+ if (stat != NSS_SUCCESS)
+ return stat;
+ }
stat =
_nss_ldap_assign_attrval (e, AT (gecos), &pw->pw_gecos, &buffer,
@@ -176,26 +193,42 @@ _nss_ldap_parse_pw (LDAPMessage * e,
tmp = NULL;
stat =
_nss_ldap_assign_attrval (e, AT (shadowMax), &tmp, &buffer, &buflen);
- pw->pw_change = (stat == NSS_SUCCESS) ? atol(tmp) * (24*60*60) : 0;
+ if (stat == NSS_SUCCESS)
+ _nss_ldap_parse_long (tmp, 0, &pw->pw_change);
+ else
+ pw->pw_change = 0;
if (pw->pw_change > 0)
{
+ long sp_change;
tmp = NULL;
stat =
_nss_ldap_assign_attrval (e, AT (shadowLastChange), &tmp, &buffer,
&buflen);
if (stat == NSS_SUCCESS)
- pw->pw_change += atol(tmp) * (24*60*60);
+ {
+ stat = _nss_ldap_parse_long(tmp, 0, &sp_change);
+ if (stat == NSS_SUCCESS)
+ {
+ pw->pw_change += sp_change;
+ pw->pw_change *= (24 * 60 * 60);
+ }
+ else
+ pw->pw_change = 0;
+ }
else
pw->pw_change = 0;
}
#endif /* HAVE_PASSWD_PW_CHANGE */
#ifdef HAVE_PASSWD_PW_EXPIRE
tmp = NULL;
stat =
_nss_ldap_assign_attrval (e, AT (shadowExpire), &tmp, &buffer, &buflen);
- pw->pw_expire = (stat == NSS_SUCCESS) ? atol(tmp) * (24*60*60) : 0;
+ if (stat == NSS_SUCCESS)
+ _nss_ldap_parse_long (tmp, 0, &pw->pw_expire);
+ else
+ pw->pw_expire = 0;
#endif /* HAVE_PASSWD_PW_EXPIRE */
return NSS_SUCCESS;
diff -up nss_ldap-259/ldap-spwd.c nss_ldap-259/ldap-spwd.c
--- nss_ldap-259/ldap-spwd.c 2007-10-29 09:30:12.000000000 -0400
+++ nss_ldap-259/ldap-spwd.c 2008-02-26 14:08:21.000000000 -0500
@@ -51,6 +51,7 @@ static char rcsId[] =
#include "ldap-nss.h"
#include "ldap-spwd.h"
+#include "util.h"
#ifdef HAVE_PORT_AFTER_H
#include <port_after.h>
@@ -86,34 +87,55 @@ _nss_ldap_parse_sp (LDAPMessage * e,
stat =
_nss_ldap_assign_attrval (e, AT (shadowLastChange), &tmp, &buffer,
&buflen);
- sp->sp_lstchg = (stat == NSS_SUCCESS) ? _nss_ldap_shadow_date (tmp) : -1;
+ if (stat == NSS_SUCCESS)
+ _nss_ldap_shadow_date (tmp, -1, &sp->sp_lstchg);
+ else
+ sp->sp_lstchg = -1;
stat =
_nss_ldap_assign_attrval (e, AT (shadowMax), &tmp, &buffer, &buflen);
- sp->sp_max = (stat == NSS_SUCCESS) ? atol (tmp) : -1;
+ if (stat == NSS_SUCCESS)
+ _nss_ldap_parse_long (tmp, -1, &sp->sp_max);
+ else
+ sp->sp_max = -1;
stat =
_nss_ldap_assign_attrval (e, AT (shadowMin), &tmp, &buffer, &buflen);
- sp->sp_min = (stat == NSS_SUCCESS) ? atol (tmp) : -1;
+ if (stat == NSS_SUCCESS)
+ _nss_ldap_parse_long (tmp, -1, &sp->sp_min);
+ else
+ sp->sp_min = -1;
stat =
_nss_ldap_assign_attrval (e, AT (shadowWarning), &tmp, &buffer,
&buflen);
- sp->sp_warn = (stat == NSS_SUCCESS) ? atol (tmp) : -1;
+ if (stat == NSS_SUCCESS)
+ _nss_ldap_parse_long (tmp, -1, &sp->sp_warn);
+ else
+ sp->sp_warn = -1;
stat =
_nss_ldap_assign_attrval (e, AT (shadowInactive), &tmp, &buffer,
&buflen);
- sp->sp_inact = (stat == NSS_SUCCESS) ? atol (tmp) : -1;
+ if (stat == NSS_SUCCESS)
+ _nss_ldap_parse_long (tmp, -1, &sp->sp_inact);
+ else
+ sp->sp_inact = -1;
stat =
_nss_ldap_assign_attrval (e, AT (shadowExpire), &tmp, &buffer,
&buflen);
- sp->sp_expire = (stat == NSS_SUCCESS) ? _nss_ldap_shadow_date (tmp) : -1;
+ if (stat == NSS_SUCCESS)
+ _nss_ldap_parse_long (tmp, -1, &sp->sp_expire);
+ else
+ sp->sp_expire = -1;
stat =
_nss_ldap_assign_attrval (e, AT (shadowFlag), &tmp, &buffer, &buflen);
- sp->sp_flag = (stat == NSS_SUCCESS) ? atol (tmp) : 0;
+ if (stat == NSS_SUCCESS)
+ _nss_ldap_parse_ulong (tmp, -1, &sp->sp_flag);
+ else
+ sp->sp_flag = -1;
_nss_ldap_shadow_handle_flag(sp);
Index: nss_ldap.spec
===================================================================
RCS file: /cvs/pkgs/rpms/nss_ldap/devel/nss_ldap.spec,v
retrieving revision 1.90
retrieving revision 1.91
diff -u -r1.90 -r1.91
--- nss_ldap.spec 19 Feb 2008 15:55:52 -0000 1.90
+++ nss_ldap.spec 26 Feb 2008 20:52:05 -0000 1.91
@@ -1,8 +1,8 @@
%define pam_ldap_version 184
Summary: NSS library and PAM module for LDAP
Name: nss_ldap
-Version: 257
-Release: 7%{?dist}
+Version: 259
+Release: 0%{?dist}
Source0: ftp://ftp.padl.com/pub/nss_ldap-%{version}.tar.gz
Source1: ftp://ftp.padl.com/pub/pam_ldap-%{pam_ldap_version}.tar.gz
Source3: nss_ldap.versions
@@ -12,15 +12,12 @@
Source7: dlopen.sh
Patch0: pam_ldap-176-dnsconfig.patch
Patch1: pam_ldap-180-local_users.patch
-Patch2: nss_ldap-246-parse.patch
+Patch2: nss_ldap-259-parse2.patch
Patch3: pam_ldap-180-install-perms.patch
Patch4: pam_ldap-180-bind.patch
-Patch5: nss_ldap-250-mock64.patch
Patch6: nss_ldap-257-over-recursion.patch
Patch7: pam_ldap-182-manpointer.patch
Patch8: nss_ldap-254-soname.patch
-Patch9: nss_ldap-256-resolver.patch
-Patch10: nss_ldap-257-slash.patch
Patch11: nss_ldap-257-initgroups-minimum_uid.patch
Patch12: pam_ldap-184-referral-passwd.patch
Patch13: pam_ldap-176-exop-modify.patch
@@ -64,12 +61,9 @@
pushd nss_ldap-%{version}
# Upstream #248
-%patch2 -p1 -b .parse
-%patch5 -p1 -b .mock64
+%patch2 -p1 -b .parse2
#%patch6 -p1 -b .over-recursion
%patch8 -p1 -b .soname
-%patch9 -p1 -b .resolver
-%patch10 -p1 -b .slash
#%patch11 -p1 -b .initgroups-minimum_uid
#%patch15 -p1 -b .mozldap
autoreconf
@@ -197,6 +191,10 @@
%doc pam_ldap-%{pam_ldap_version}/ldapns.schema
%changelog
+* Tue Feb 26 2008 Nalin Dahyabhai <nalin at redhat.com> - 259-1
+- update to nss_ldap 259
+- update to revised proposed patch for #248
+
* Tue Feb 19 2008 Fedora Release Engineering <rel-eng at fedoraproject.org> - 257-7
- Autorebuild for GCC 4.3
--- nss_ldap-246-parse.patch DELETED ---
--- nss_ldap-250-mock64.patch DELETED ---
--- nss_ldap-256-resolver.patch DELETED ---
--- nss_ldap-257-slash.patch DELETED ---
More information about the fedora-extras-commits
mailing list