notmuch-dump.c: Fix output file being closed twice master
authorRalph Seichter <abbot@monksofcool.net>
Tue, 23 Jul 2019 20:48:23 +0000 (22:48 +0200)
committerDavid Bremner <david@tethera.net>
Tue, 23 Jul 2019 22:20:18 +0000 (19:20 -0300)
Fixed: If the output file for a dump was non-writeable, gzclose_w()
was called twice on the output file handle, resulting in SIGABRT.

notmuch-dump.c

index 505c1469657cfac48945bd394a1aef06d7f74ee2..65e026394cf77e12d9fe3ba2772c395eb789b750 100644 (file)
@@ -329,13 +329,15 @@ notmuch_database_dump (notmuch_database_t *notmuch,
        }
     }
 
-    if (gzclose_w (output) != Z_OK) {
+    ret = gzclose_w (output);
+    if (ret) {
        fprintf (stderr, "Error closing %s: %s\n", name_for_error,
                 gzerror (output, NULL));
        ret = EXIT_FAILURE;
        output = NULL;
        goto DONE;
-    }
+    } else
+        output = NULL;
 
     if (output_file_name) {
        ret = rename (tempname, output_file_name);