]> diplodocus.org Git - nmh/blobdiff - uip/mhstoresbr.c
lock_file.c: close(2) file descriptor on failure, avoiding leak.
[nmh] / uip / mhstoresbr.c
index 7d74f1ea36d11b2f7463278c507e93df755d34e5..0e9b94cd112d0e68f9eb25bf481d46a874889443 100644 (file)
 #include <h/md5.h>
 #include <h/mts.h>
 #include <h/tws.h>
+#include <h/fmt_scan.h>
 #include <h/mime.h>
 #include <h/mhparse.h>
 #include <h/utils.h>
-#include "../sbr/m_mktemp.h"
+#include "mhmisc.h"
+#include "mhshowsbr.h"
+#include "sbr/m_maildir.h"
+#include "sbr/m_mktemp.h"
 
 enum clobber_policy_t {
   NMH_CLOBBER_ALWAYS = 0,
@@ -23,7 +27,7 @@ enum clobber_policy_t {
   NMH_CLOBBER_NEVER
 };
 
-static enum clobber_policy_t clobber_policy (const char *);
+static enum clobber_policy_t clobber_policy (const char *) PURE;
 
 struct mhstoreinfo {
     CT *cts;                 /* Top-level list of contents to store. */
@@ -77,11 +81,6 @@ mhstoreinfo_files_not_clobbered (const mhstoreinfo_t info) {
 typedef int (*qsort_comp) (const void *, const void *);
 
 
-/* mhmisc.c */
-int part_ok (CT);
-int type_ok (CT, int);
-void flush_errors (void);
-
 /*
  * static prototypes
  */
@@ -528,7 +527,7 @@ store_content (CT ct, CT p, mhstoreinfo_t info)
        if (p) {
            appending = 1;
             if (! ct->c_storage) {
-               ct->c_storage = add (p->c_storage, NULL);
+               ct->c_storage = mh_xstrdup(FENDNULL(p->c_storage));
 
                /* record the folder name */
                if (p->c_folder) {
@@ -899,13 +898,12 @@ output_content_folder (char *folder, char *filename)
     struct msgs *mp;
 
     /* Read the folder. */
-    if ((mp = folder_read (folder, 0))) {
-       /* Link file into folder */
-       msgnum = folder_addmsg (&mp, filename, 0, 0, 0, 0, NULL);
-    } else {
+    if (!(mp = folder_read(folder, 0))) {
        inform("unable to read folder %s", folder);
        return NOTOK;
     }
+    /* Link file into folder */
+    msgnum = folder_addmsg(&mp, filename, 0, 0, 0, 0, NULL);
 
     /* free folder structure */
     folder_free (mp);
@@ -1072,7 +1070,7 @@ get_storeproc (CT ct)
                free(cp);
                return;
        }
-        mh_xfree(cp);
+        free(cp);
     }
 
     /*
@@ -1086,7 +1084,7 @@ get_storeproc (CT ct)
            ct->c_storeproc = mh_xstrdup(cp);
 
     }
-    mh_xfree(cp);
+    free(cp);
 }