[Pkg-shadow-commits] r1353 - in upstream/trunk: . src

nekral-guest at alioth.debian.org nekral-guest at alioth.debian.org
Fri Nov 16 23:26:56 UTC 2007


Author: nekral-guest
Date: 2007-11-16 23:26:56 +0000 (Fri, 16 Nov 2007)
New Revision: 1353

Modified:
   upstream/trunk/ChangeLog
   upstream/trunk/NEWS
   upstream/trunk/src/userdel.c
Log:
Abort if an error is found while updating the user or group database. No
changes will be written in the databases.


Modified: upstream/trunk/ChangeLog
===================================================================
--- upstream/trunk/ChangeLog	2007-11-16 23:05:24 UTC (rev 1352)
+++ upstream/trunk/ChangeLog	2007-11-16 23:26:56 UTC (rev 1353)
@@ -1,5 +1,11 @@
 2007-11-17  Nicolas François  <nicolas.francois at centraliens.net>
 
+	* NEWS, src/userdel.c: Abort if an error is found while updating the
+	user or group database. No changes will be written in the
+	databases.
+
+2007-11-17  Nicolas François  <nicolas.francois at centraliens.net>
+
 	* src/useradd.c: It is no more needed to check that the user's
 	groups are specified only once in the group file. This is checked
 	by gr_update().

Modified: upstream/trunk/NEWS
===================================================================
--- upstream/trunk/NEWS	2007-11-16 23:05:24 UTC (rev 1352)
+++ upstream/trunk/NEWS	2007-11-16 23:26:56 UTC (rev 1353)
@@ -25,6 +25,8 @@
   containing two entries with the same name. (The fix strategy differs
   from 
   (https://bugzilla.redhat.com/show_bug.cgi?id=240915)
+- userdel: Abort if an error is detected while updating the passwd or group
+  databases. The passwd or group files will not be written.
 
 shadow-4.0.18.1 -> shadow-4.0.18.2					28-10-2007
 

Modified: upstream/trunk/src/userdel.c
===================================================================
--- upstream/trunk/src/userdel.c	2007-11-16 23:05:24 UTC (rev 1352)
+++ upstream/trunk/src/userdel.c	2007-11-16 23:26:56 UTC (rev 1353)
@@ -153,9 +153,11 @@
 			exit (13);	/* XXX */
 		}
 		ngrp->gr_mem = del_list (ngrp->gr_mem, user_name);
-		if (!gr_update (ngrp))
+		if (!gr_update (ngrp)) {
 			fprintf (stderr,
 				 _("%s: error updating group entry\n"), Prog);
+			exit (E_GRP_UPDATE);
+		}
 
 		/*
 		 * Update the DBM group file with the new entry as well.
@@ -252,9 +254,11 @@
 		if (was_admin)
 			nsgrp->sg_adm = del_list (nsgrp->sg_adm, user_name);
 
-		if (!sgr_update (nsgrp))
+		if (!sgr_update (nsgrp)) {
 			fprintf (stderr,
 				 _("%s: error updating group entry\n"), Prog);
+			exit (E_GRP_UPDATE);
+		}
 #ifdef WITH_AUDIT
 		audit_logger (AUDIT_USER_CHAUTHTOK, Prog,
 			      "deleting user from shadow group", user_name,
@@ -411,12 +415,16 @@
  */
 static void update_user (void)
 {
-	if (!pw_remove (user_name))
+	if (!pw_remove (user_name)) {
 		fprintf (stderr,
 			 _("%s: error deleting password entry\n"), Prog);
-	if (is_shadow_pwd && !spw_remove (user_name))
+		fail_exit (E_PW_UPDATE);
+	}
+	if (is_shadow_pwd && !spw_remove (user_name)) {
 		fprintf (stderr,
 			 _("%s: error deleting shadow password entry\n"), Prog);
+		fail_exit (E_PW_UPDATE);
+	}
 #ifdef WITH_AUDIT
 	audit_logger (AUDIT_USER_CHAUTHTOK, Prog, "deleting user entries",
 		      user_name, user_id, 1);




More information about the Pkg-shadow-commits mailing list