Major and incompatible overhaul of key_data representation. Fix leaks.
[u/mdw/catacomb] / key-file.c
index 6e422b1..dc9efc0 100644 (file)
@@ -197,6 +197,9 @@ int key_save(key_file *f)
 
   unlink(n_new.buf);
   unlink(n_older.buf);
+  dstr_destroy(&n_new);
+  dstr_destroy(&n_old);
+  dstr_destroy(&n_older);
   return (KWRITE_OK);
 
   /* --- Failure while writing the new key file --- *
@@ -255,15 +258,15 @@ fail_shift:
   dstr_destroy(&n_older);
   return (rc);
   
-/* --- Failure during write of new data --- *
- *
- * Clean up the new file and return.  These errors can never cause
- * breakage.
- */
+  /* --- Failure during write of new data --- *
  *
  * Clean up the new file and return.  These errors can never cause
  * breakage.
  */
 
 fail_write:
   unlink(n_new.buf);
-  fail_open:
+fail_open:
   dstr_destroy(&n_new);
   return (rc);
 }