]> granicus.if.org Git - shadow/commitdiff
* src/usermod.c: Report failure to unlock the passwd or shadow
authornekral-guest <nekral-guest@5a98b0ae-9ef6-0310-add3-de5d479b70d7>
Thu, 7 Aug 2008 08:03:38 +0000 (08:03 +0000)
committernekral-guest <nekral-guest@5a98b0ae-9ef6-0310-add3-de5d479b70d7>
Thu, 7 Aug 2008 08:03:38 +0000 (08:03 +0000)
file to stderr and syslog.

ChangeLog
src/usermod.c

index 4bb23bdb7d9dc62e7e20407d3da16d5a716f7a4c..111625a0f8a848e7695a37cbcaa7d2e781231a6c 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2008-08-07  Nicolas François  <nicolas.francois@centraliens.net>
+
+       * src/usermod.c: Report failure to unlock the passwd or shadow
+       file to stderr and syslog.
+
 2008-08-07  Nicolas François  <nicolas.francois@centraliens.net>
 
        * src/newusers.c: Report failure to unlock the passwd or shadow
index aee90f8cfacdd9ca1d4541643a6b12153fbdff17..fe145f7356f908fe01ebc6f94871e3c493e65a15 100644 (file)
@@ -515,18 +515,34 @@ static void new_spent (struct spwd *spent)
 static void fail_exit (int code)
 {
        if (gr_locked) {
-               gr_unlock ();
+               if (gr_unlock () == 0) {
+                       fprintf (stderr, _("%s: failed to unlock %s\n"), Prog, gr_dbname ());
+                       SYSLOG ((LOG_ERR, "failed to unlock %s", gr_dbname ()));
+                       /* continue */
+               }
        }
 #ifdef SHADOWGRP
        if (sgr_locked) {
-               sgr_unlock ();
+               if (sgr_unlock () == 0) {
+                       fprintf (stderr, _("%s: failed to unlock %s\n"), Prog, sgr_dbname ());
+                       SYSLOG ((LOG_ERR, "failed to unlock %s", sgr_dbname ()));
+                       /* continue */
+               }
        }
 #endif
        if (spw_locked) {
-               spw_unlock ();
+               if (spw_unlock () == 0) {
+                       fprintf (stderr, _("%s: failed to unlock %s\n"), Prog, spw_dbname ());
+                       SYSLOG ((LOG_ERR, "failed to unlock %s", spw_dbname ()));
+                       /* continue */
+               }
        }
        if (pw_locked) {
-               pw_unlock ();
+               if (pw_unlock () == 0) {
+                       fprintf (stderr, _("%s: failed to unlock %s\n"), Prog, pw_dbname ());
+                       SYSLOG ((LOG_ERR, "failed to unlock %s", pw_dbname ()));
+                       /* continue */
+               }
        }
 
 #ifdef WITH_AUDIT
@@ -1121,23 +1137,38 @@ static void close_files (void)
                        fail_exit (E_GRP_UPDATE);
                }
 #ifdef SHADOWGRP
-               if (is_shadow_grp && (sgr_close () == 0)) {
+               if (is_shadow_grp) {
+                       if (sgr_close () == 0) {
                        fprintf (stderr,
                                 _("%s: failure while writing changes to %s\n"),
                                 Prog, sgr_dbname ());
                        fail_exit (E_GRP_UPDATE);
-               }
-               if (is_shadow_grp) {
-                       sgr_unlock ();
+                       if (sgr_unlock () == 0) {
+                               fprintf (stderr, _("%s: failed to unlock %s\n"), Prog, sgr_dbname ());
+                               SYSLOG ((LOG_ERR, "failed to unlock %s", sgr_dbname ()));
+                               /* continue */
+                       }
                }
 #endif
-               gr_unlock ();
+               if (gr_unlock () == 0) {
+                       fprintf (stderr, _("%s: failed to unlock %s\n"), Prog, gr_dbname ());
+                       SYSLOG ((LOG_ERR, "failed to unlock %s", gr_dbname ()));
+                       /* continue */
+               }
        }
 
        if (is_shadow_pwd) {
-               spw_unlock ();
+               if (spw_unlock () == 0) {
+                       fprintf (stderr, _("%s: failed to unlock %s\n"), Prog, spw_dbname ());
+                       SYSLOG ((LOG_ERR, "failed to unlock %s", spw_dbname ()));
+                       /* continue */
+               }
+       }
+       if (pw_unlock () == 0) {
+               fprintf (stderr, _("%s: failed to unlock %s\n"), Prog, pw_dbname ());
+               SYSLOG ((LOG_ERR, "failed to unlock %s", pw_dbname ()));
+               /* continue */
        }
-       pw_unlock ();
 
        pw_locked = false;
        spw_locked = false;