[Pkg-shadow-commits] r1974 - in upstream/trunk: . libmisc src
nekral-guest at alioth.debian.org
nekral-guest at alioth.debian.org
Wed Apr 16 21:52:47 UTC 2008
Author: nekral-guest
Date: 2008-04-16 21:52:46 +0000 (Wed, 16 Apr 2008)
New Revision: 1974
Modified:
upstream/trunk/ChangeLog
upstream/trunk/libmisc/entry.c
upstream/trunk/libmisc/find_new_ids.c
upstream/trunk/libmisc/pwdcheck.c
upstream/trunk/src/faillog.c
upstream/trunk/src/groupmod.c
upstream/trunk/src/groups.c
upstream/trunk/src/lastlog.c
upstream/trunk/src/login.c
upstream/trunk/src/newgrp.c
upstream/trunk/src/passwd.c
Log:
Ensure that getpwent() is used in setpwent(), getpwent(),
endpwend() sequences (ditto for getgrent(), getspent(), and
getsgent()). The only real (minor) issue was in login, which kept
the passwd file open.
* libmisc/entry.c: Remove unneeded setspent() and endspent() (only
getspnam is called in the middle).
* libmisc/find_new_ids.c: Make sure to close the password and
group files with endpwent() and endgrent().
* libmisc/pwdcheck.c: Remove unneeded endspent() (only getspnam()
is called before).
* src/lastlog.c, src/passwd.c, src/groupmod.c, src/faillog.c,
src/groups.c: Make sure to close
the password file with endpwent().
* src/login.c: Remove unneeded setpwent() (only xgetpwnam is
called before).
* src/login.c, src/newgrp.c: Fix typos in comments.
Modified: upstream/trunk/ChangeLog
===================================================================
--- upstream/trunk/ChangeLog 2008-04-16 21:24:14 UTC (rev 1973)
+++ upstream/trunk/ChangeLog 2008-04-16 21:52:46 UTC (rev 1974)
@@ -1,5 +1,24 @@
2008-04-16 Nicolas François <nicolas.francois at centraliens.net>
+ Ensure that getpwent() is used in setpwent(), getpwent(),
+ endpwend() sequences (ditto for getgrent(), getspent(), and
+ getsgent()). The only real (minor) issue was in login, which kept
+ the passwd file open.
+ * libmisc/entry.c: Remove unneeded setspent() and endspent() (only
+ getspnam is called in the middle).
+ * libmisc/find_new_ids.c: Make sure to close the password and
+ group files with endpwent() and endgrent().
+ * libmisc/pwdcheck.c: Remove unneeded endspent() (only getspnam()
+ is called before).
+ * src/lastlog.c, src/passwd.c, src/groupmod.c, src/faillog.c,
+ src/groups.c: Make sure to close
+ the password file with endpwent().
+ * src/login.c: Remove unneeded setpwent() (only xgetpwnam is
+ called before).
+ * src/login.c, src/newgrp.c: Fix typos in comments.
+
+2008-04-16 Nicolas François <nicolas.francois at centraliens.net>
+
* NEWS, configure.in: Fix the detection of the audit, pam, and
selinux. Fail if the feature is requested but the library (or
header file) could not be found. If nothing is specified, enable
Modified: upstream/trunk/libmisc/entry.c
===================================================================
--- upstream/trunk/libmisc/entry.c 2008-04-16 21:24:14 UTC (rev 1973)
+++ upstream/trunk/libmisc/entry.c 2008-04-16 21:52:46 UTC (rev 1974)
@@ -54,14 +54,11 @@
pwent->pw_dir = xstrdup (passwd->pw_dir);
pwent->pw_shell = xstrdup (passwd->pw_shell);
#if !defined(AUTOSHADOW)
- setspent ();
/* local, no need for xgetspnam */
if ((spwd = getspnam (name))) {
pwent->pw_passwd = xstrdup (spwd->sp_pwdp);
- endspent ();
return;
}
- endspent ();
#endif
pwent->pw_passwd = xstrdup (passwd->pw_passwd);
}
Modified: upstream/trunk/libmisc/find_new_ids.c
===================================================================
--- upstream/trunk/libmisc/find_new_ids.c 2008-04-16 21:24:14 UTC (rev 1973)
+++ upstream/trunk/libmisc/find_new_ids.c 2008-04-16 21:52:46 UTC (rev 1974)
@@ -65,6 +65,7 @@
user_id = pwd->pw_uid + 1;
}
}
+ endpwent ();
/*
* If a user with UID equal to UID_MAX exists, the above algorithm
@@ -146,6 +147,7 @@
group_id = grp->gr_gid + 1;
}
}
+ endgrent ();
/*
* If a group with GID equal to GID_MAX exists, the above algorithm
Modified: upstream/trunk/libmisc/pwdcheck.c
===================================================================
--- upstream/trunk/libmisc/pwdcheck.c 2008-04-16 21:24:14 UTC (rev 1973)
+++ upstream/trunk/libmisc/pwdcheck.c 2008-04-16 21:52:46 UTC (rev 1974)
@@ -46,7 +46,6 @@
if ((sp = getspnam (user))) /* !USE_PAM, no need for xgetspnam */
passwd = sp->sp_pwdp;
- endspent ();
if (pw_auth (passwd, user, PW_LOGIN, (char *) 0) != 0) {
SYSLOG ((LOG_WARN, WRONGPWD2, user));
sleep (1);
Modified: upstream/trunk/src/faillog.c
===================================================================
--- upstream/trunk/src/faillog.c 2008-04-16 21:24:14 UTC (rev 1973)
+++ upstream/trunk/src/faillog.c 2008-04-16 21:52:46 UTC (rev 1974)
@@ -170,6 +170,7 @@
while ( (pwent = getpwent ()) != NULL ) {
reset_one (pwent->pw_uid);
}
+ endpwent ();
}
}
@@ -246,8 +247,10 @@
setmax_one (user, max);
} else {
setpwent ();
- while ((pwent = getpwent ()))
+ while ( (pwent = getpwent ()) != NULL ) {
setmax_one (pwent->pw_uid, max);
+ }
+ endpwent ();
}
}
@@ -288,8 +291,10 @@
set_locktime_one (user, locktime);
} else {
setpwent ();
- while ((pwent = getpwent ()))
+ while ( (pwent = getpwent ()) != NULL ) {
set_locktime_one (pwent->pw_uid, locktime);
+ }
+ endpwent ();
}
}
Modified: upstream/trunk/src/groupmod.c
===================================================================
--- upstream/trunk/src/groupmod.c 2008-04-16 21:24:14 UTC (rev 1973)
+++ upstream/trunk/src/groupmod.c 2008-04-16 21:52:46 UTC (rev 1974)
@@ -547,6 +547,7 @@
}
}
}
+ endpwent ();
}
/*
Modified: upstream/trunk/src/groups.c
===================================================================
--- upstream/trunk/src/groups.c 2008-04-16 21:24:14 UTC (rev 1973)
+++ upstream/trunk/src/groups.c 2008-04-16 21:52:46 UTC (rev 1974)
@@ -57,13 +57,12 @@
struct passwd *pwd;
int flag = 0;
- setgrent ();
-
/* local, no need for xgetpwnam */
if ((pwd = getpwnam (member)) == 0) {
fprintf (stderr, _("%s: unknown user %s\n"), Prog, member);
exit (1);
}
+ setgrent ();
while ((grp = getgrent ())) {
if (is_on_list (grp->gr_mem, member)) {
if (groups++)
@@ -74,6 +73,7 @@
flag = 1;
}
}
+ endgrent ();
/* local, no need for xgetgrgid */
if (!flag && (grp = getgrgid (pwd->pw_gid))) {
if (groups++)
Modified: upstream/trunk/src/lastlog.c
===================================================================
--- upstream/trunk/src/lastlog.c 2008-04-16 21:24:14 UTC (rev 1973)
+++ upstream/trunk/src/lastlog.c 2008-04-16 21:52:46 UTC (rev 1974)
@@ -128,7 +128,7 @@
uid_t user;
setpwent ();
- while ((pwent = getpwent ())) {
+ while ( (pwent = getpwent ()) != NULL ) {
user = pwent->pw_uid;
if (uflg &&
((umin != -1 && user < (uid_t)umin) ||
@@ -149,6 +149,7 @@
print_one (pwent);
}
+ endpwent ();
}
int main (int argc, char **argv)
Modified: upstream/trunk/src/login.c
===================================================================
--- upstream/trunk/src/login.c 2008-04-16 21:24:14 UTC (rev 1973)
+++ upstream/trunk/src/login.c 2008-04-16 21:52:46 UTC (rev 1974)
@@ -738,7 +738,6 @@
*/
retcode =
pam_get_item (pamh, PAM_USER, (const void **)ptr_pam_user);
- setpwent ();
pwd = xgetpwnam (pam_user);
if (!pwd) {
SYSLOG ((LOG_ERR, "xgetpwnam(%s) failed",
@@ -962,7 +961,7 @@
if (pwent.pw_shell[0] == '*') { /* subsystem root */
pwent.pw_shell++; /* skip the '*' */
subsystem (&pwent); /* figure out what to execute */
- subroot++; /* say i was here again */
+ subroot++; /* say I was here again */
endpwent (); /* close all of the file which were */
endgrent (); /* open in the original rooted file */
endspent (); /* system. they will be re-opened */
Modified: upstream/trunk/src/newgrp.c
===================================================================
--- upstream/trunk/src/newgrp.c 2008-04-16 21:24:14 UTC (rev 1973)
+++ upstream/trunk/src/newgrp.c 2008-04-16 21:52:46 UTC (rev 1974)
@@ -695,7 +695,7 @@
prog = "/bin/sh";
/*
- * Now i try to find the basename of the login shell. This will
+ * Now I try to find the basename of the login shell. This will
* become argv[0] of the spawned command.
*/
cp = Basename ((char *) prog);
Modified: upstream/trunk/src/passwd.c
===================================================================
--- upstream/trunk/src/passwd.c 2008-04-16 21:24:14 UTC (rev 1973)
+++ upstream/trunk/src/passwd.c 2008-04-16 21:52:46 UTC (rev 1974)
@@ -848,8 +848,10 @@
exit (E_NOPERM);
}
setpwent ();
- while ((pw = getpwent ()))
+ while ( (pw = getpwent ()) != NULL ) {
print_status (pw);
+ }
+ endpwent ();
exit (E_SUCCESS);
}
#if 0
More information about the Pkg-shadow-commits
mailing list