[Pkg-shadow-commits] r1726 - in upstream/trunk: . src
nekral-guest at alioth.debian.org
nekral-guest at alioth.debian.org
Mon Jan 21 23:33:44 UTC 2008
Author: nekral-guest
Date: 2008-01-21 23:33:43 +0000 (Mon, 21 Jan 2008)
New Revision: 1726
Modified:
upstream/trunk/ChangeLog
upstream/trunk/NEWS
upstream/trunk/src/newgrp.c
Log:
* NEWS, src/newgrp.c: Fix segfault when an user returns to an
unknown GID (either the user was deleted during the user's newgrp
session or the user's passwd entry referenced an invalid group).
Add a syslog warning in that case.
* src/newgrp.c: Add an end of line when reporting an invalid
password.
Modified: upstream/trunk/ChangeLog
===================================================================
--- upstream/trunk/ChangeLog 2008-01-13 19:26:13 UTC (rev 1725)
+++ upstream/trunk/ChangeLog 2008-01-21 23:33:43 UTC (rev 1726)
@@ -1,3 +1,12 @@
+2008-01-22 Nicolas François <nicolas.francois at centraliens.net>
+
+ * NEWS, src/newgrp.c: Fix segfault when an user returns to an
+ unknown GID (either the user was deleted during the user's newgrp
+ session or the user's passwd entry referenced an invalid group).
+ Add a syslog warning in that case.
+ * src/newgrp.c: Add an end of line when reporting an invalid
+ password.
+
2008-01-12 Nicolas François <nicolas.francois at centraliens.net>
* NEWS, src/useradd.c: Fix the handling of the --defaults option
Modified: upstream/trunk/NEWS
===================================================================
--- upstream/trunk/NEWS 2008-01-13 19:26:13 UTC (rev 1725)
+++ upstream/trunk/NEWS 2008-01-21 23:33:43 UTC (rev 1726)
@@ -26,6 +26,10 @@
- lastlog
* Accept users specified as a numerical UID, or ranges of users (-user,
user-, user1-user2).
+- newgrp
+ * Fix segfault when an user returns to an unknown GID (either the user
+ was deleted during the user's newgrp session or the user's passwd
+ entry referenced an invalid group). Add a syslog warning in that case.
- newusers
* The new users are no more added to the list of members of their groups
because the membership is already set by their primary group.
Modified: upstream/trunk/src/newgrp.c
===================================================================
--- upstream/trunk/src/newgrp.c 2008-01-13 19:26:13 UTC (rev 1725)
+++ upstream/trunk/src/newgrp.c 2008-01-21 23:33:43 UTC (rev 1726)
@@ -169,7 +169,7 @@
"Invalid password for group `%s' from `%s'",
groupname, pwd->pw_name));
sleep (1);
- fputs (_("Invalid password."), stderr);
+ fputs (_("Invalid password.\n"), stderr);
goto failure;
}
}
@@ -252,6 +252,8 @@
} else if (child) {
/* parent - wait for child to finish, then log session close */
int cst = 0;
+ gid_t gid = getgid();
+ struct group *grp = getgrgid (gid);
do {
errno = 0;
@@ -265,10 +267,22 @@
} while ((pid == child && WIFSTOPPED (cst)) ||
(pid != child && errno == EINTR));
/* local, no need for xgetgrgid */
- SYSLOG ((LOG_INFO,
- "user `%s' (login `%s' on %s) returned to group `%s'",
- name, loginname, tty,
- getgrgid (gid)->gr_name));
+ if (NULL != grp) {
+ SYSLOG ((LOG_INFO,
+ "user `%s' (login `%s' on %s) returned to group `%s'",
+ name, loginname, tty, grp->gr_name));
+ } else {
+ SYSLOG ((LOG_INFO,
+ "user `%s' (login `%s' on %s) returned to group `%d'",
+ name, loginname, tty, gid));
+ /* Either the user's passwd entry has a
+ * GID that does not match with any group,
+ * or the group was deleted while the user
+ * was in a newgrp session.*/
+ SYSLOG ((LOG_WARN,
+ "unknown GID `%u' used by user `%s'",
+ gid, name));
+ }
closelog ();
exit (0);
}
More information about the Pkg-shadow-commits
mailing list