Subject: pkg/36625: nss-ldap miscalculates pw_change
To: None <pkg-manager@netbsd.org, gnats-admin@netbsd.org,>
From: None <ef@math.uni-bonn.de>
List: pkgsrc-bugs
Date: 07/10/2007 16:40:00
>Number: 36625
>Category: pkg
>Synopsis: nss-ldap miscalculates pw_change
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: pkg-manager
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Tue Jul 10 16:40:00 +0000 2007
>Originator: Edgar Fuß
>Release: 2006Q2
>Organization:
Mathematisches Institut der Universität Bonn, Computerabteilung
>Description:
PADL Software's nss_ldap 240 miscalculates the pw_change field.
While converting the LDAP shadowMax field from days-since-epoch
to seconds-since-epoch, it does not convert the LDAP shadowLastChange
field it then adds. So it adds days to seconds.
I've filed this as a bug with PADL Software, but maybe pkgsrc
could patch it until they resolve the bug.
>How-To-Repeat:
pkg_add nss_ldap
exercise getpwnam() for an LDAP user
>Fix:
--- ldap-pwd.c.orig 2005-08-31 04:42:50.000000000 +0200
+++ ldap-pwd.c 2007-07-10 14:41:17.000000000 +0200
@@ -185,7 +185,7 @@
_nss_ldap_assign_attrval (e, AT (shadowLastChange), &tmp, &buffer,
&buflen);
if (stat == NSS_SUCCESS)
- pw->pw_change += atol(tmp);
+ pw->pw_change += atol(tmp) * (24*60*60);
else
pw->pw_change = 0;
}