[27061] in CVS-changelog-for-Kerberos-V5

home help back first fref pref prev next nref lref last post

krb5 commit: Cleanup dump_db()

daemon@ATHENA.MIT.EDU (Greg Hudson)
Fri Oct 5 14:37:16 2012

Date: Fri, 5 Oct 2012 14:37:12 -0400
From: Greg Hudson <ghudson@mit.edu>
Message-Id: <201210051837.q95IbCra017999@drugstore.mit.edu>
To: cvs-krb5@mit.edu
Reply-To: krbdev@mit.edu
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: cvs-krb5-bounces@mit.edu

https://github.com/krb5/krb5/commit/c16f2f668267b90b28cabf15075022d7810e02ed
commit c16f2f668267b90b28cabf15075022d7810e02ed
Author: Nicolas Williams <nico@cryptonector.com>
Date:   Wed Sep 26 17:05:05 2012 -0500

    Cleanup dump_db()

 src/kadmin/dbutil/dump.c |   34 ++++++++++++++--------------------
 1 files changed, 14 insertions(+), 20 deletions(-)

diff --git a/src/kadmin/dbutil/dump.c b/src/kadmin/dbutil/dump.c
index e366104..c5c0034 100644
--- a/src/kadmin/dbutil/dump.c
+++ b/src/kadmin/dbutil/dump.c
@@ -1326,8 +1326,7 @@ dump_db(argc, argv)
                 arglist.flags |= FLAG_OMIT_NRA;
             } else {
                 fprintf(stderr, _("Iprop not enabled\n"));
-                exit_status++;
-                return;
+                goto error;
             }
         } else if (!strcmp(argv[aindex], conditionaloption))
             conditional = 1;
@@ -1366,8 +1365,7 @@ dump_db(argc, argv)
             com_err(progname, 0,
                     _("Conditional dump is an undocumented option for "
                       "use only for iprop dumps"));
-            exit_status++;
-            return;
+            goto error;
         }
         if (current_dump_sno_in_ulog(ofile, log_ctx->ulog))
             return;
@@ -1379,8 +1377,7 @@ dump_db(argc, argv)
      */
     if (!dbactive) {
         com_err(progname, 0, _("Database not currently opened!"));
-        exit_status++;
-        return;
+        goto error;
     }
 
     /*
@@ -1461,7 +1458,6 @@ dump_db(argc, argv)
         if (f == NULL) {
             fprintf(stderr, ofopen_error,
                     progname, ofile, error_message(errno));
-            exit_status++;
             return;
         }
     } else {
@@ -1481,11 +1477,7 @@ dump_db(argc, argv)
             if (krb5_db_lock(util_context, KRB5_LOCKMODE_SHARED)) {
                 fprintf(stderr,
                         _("%s: Couldn't grab lock\n"), progname);
-                if (tmpofile != NULL)
-                    unlink(tmpofile);
-                free(tmpofile);
-                exit_status++;
-                return;
+                goto error;
             }
 
             if (ipropx_version)
@@ -1504,27 +1496,29 @@ dump_db(argc, argv)
                                     (krb5_pointer) &arglist))) { /* TBD: backwards and recursive not supported */
             fprintf(stderr, dumprec_err,
                     progname, dump->name, error_message(kret));
-            exit_status++;
-            if (dump_sno)
-                (void) krb5_db_unlock(util_context);
+            goto error;
         }
         if (dump->dump_policy &&
             (kret = krb5_db_iter_policy( util_context, "*", dump->dump_policy,
                                          &arglist))) {
             fprintf(stderr, dumprec_err, progname, dump->name,
                     error_message(kret));
-            exit_status++;
+            goto error;
         }
-        if (ofile && f != stdout && !exit_status) {
+        if (ofile && f != stdout) {
             fclose(f);
             finish_ofile(ofile, &tmpofile);
             update_ok_file(ofile);
         }
-        if (tmpofile != NULL)
-            unlink(tmpofile);
-        free(tmpofile);
         return;
     }
+
+error:
+    krb5_db_unlock(util_context);
+    if (tmpofile != NULL)
+        unlink(tmpofile);
+    free(tmpofile);
+    exit_status++;
 }
 
 /*
_______________________________________________
cvs-krb5 mailing list
cvs-krb5@mit.edu
https://mailman.mit.edu/mailman/listinfo/cvs-krb5

home help back first fref pref prev next nref lref last post