]> diplodocus.org Git - nmh/blobdiff - uip/mhfixmsg.c
Don't cast void pointer return value of malloc() et al.
[nmh] / uip / mhfixmsg.c
index d804a6631089e90876e3b995bda7e1ca77862270..486c7cc4d88541cbdda12122d6e008ae1fc47211 100644 (file)
@@ -9,11 +9,12 @@
 #include <h/fmt_scan.h>
 #include <h/mime.h>
 #include <h/mhparse.h>
+#include "h/done.h"
 #include <h/utils.h>
 #include <h/signals.h>
-#include "../sbr/m_maildir.h"
-#include "../sbr/m_mktemp.h"
-#include "../sbr/mime_type.h"
+#include "sbr/m_maildir.h"
+#include "sbr/m_mktemp.h"
+#include "sbr/mime_type.h"
 #include "mhmisc.h"
 #include "mhfree.h"
 #include "mhoutsbr.h"
@@ -62,13 +63,6 @@ int debugsw; /* Needed by mhparse.c. */
 
 #define quitser pipeser
 
-/* mhparse.c */
-extern int skip_mp_cte_check;                 /* flag to InitMultiPart */
-extern int suppress_bogus_mp_content_warning; /* flag to InitMultiPart */
-extern int bogus_mp_content;                  /* flag from InitMultiPart */
-/* flags to/from parse_header_attrs */
-extern int suppress_extraneous_trailing_semicolon_warning;
-
 /*
  * static prototypes
  */
@@ -85,8 +79,8 @@ typedef struct fix_transformations {
     char *textcharset;
 } fix_transformations;
 
-int mhfixmsgsbr (CT *, char *, const fix_transformations *, FILE **, char *,
-                 FILE **);
+static int mhfixmsgsbr (CT *, char *, const fix_transformations *,
+    FILE **, char *, FILE **);
 static int fix_boundary (CT *, int *);
 static int copy_input_to_output (const char *, FILE *, const char *, FILE *);
 static int get_multipart_boundary (CT, char **);
@@ -305,12 +299,12 @@ main (int argc, char **argv) {
      * Read the standard profile setup
      */
     if ((fp = fopen (cp = etcpath ("mhn.defaults"), "r"))) {
-        readconfig ((struct node **) 0, fp, cp, 0);
+        readconfig(NULL, fp, cp, 0);
         fclose (fp);
     }
 
-    suppress_bogus_mp_content_warning = skip_mp_cte_check = 1;
-    suppress_extraneous_trailing_semicolon_warning = 1;
+    suppress_bogus_mp_content_warning = skip_mp_cte_check = true;
+    suppress_extraneous_trailing_semicolon_warning = true;
 
     if (! context_find ("path")) {
         free (path ("./", TFOLDER));
@@ -502,7 +496,7 @@ main (int argc, char **argv) {
         status = 1;
     }
 
-    mh_xfree(maildir);
+    free(maildir);
     free (cts);
 
     if (fx.fixtypes != NULL) { svector_free (fx.fixtypes); }
@@ -521,7 +515,7 @@ main (int argc, char **argv) {
 /*
  * Apply transformations to one message.
  */
-int
+static int
 mhfixmsgsbr (CT *ctp, char *maildir, const fix_transformations *fx,
              FILE **infp, char *outfile, FILE **outfp) {
     /* Store input filename in case one of the transformations, i.e.,
@@ -873,7 +867,7 @@ replace_boundary (CT ct, char *file, char *boundary) {
                 fprintf (fpout, "%s:%s%s\n", np, new_ctline,
                         FENDNULL(new_params));
                free(new_ctline);
-                mh_xfree(new_params);
+                free(new_params);
             }
 
             free (vp);
@@ -1121,7 +1115,7 @@ fix_composite_cte (CT ct, int *message_mods) {
 
             for (hf = ct->c_first_hf; hf; hf = hf->next) {
                 char *name = hf->name;
-                for (; *name && isspace ((unsigned char) *name); ++name) {
+                for (; isspace((unsigned char)*name); ++name) {
                     continue;
                 }
 
@@ -1749,8 +1743,7 @@ build_multipart_alt (CT first_alt, CT new_part, int type, int subtype) {
                      boundary_in_content (&new_part->c_cefile.ce_fp,
                                           new_part->c_cefile.ce_file,
                                           boundary)) == NOTOK) {
-                    free_content (ct);
-                    return NULL;
+                    goto return_null;
                 }
             }
 
@@ -1761,8 +1754,7 @@ build_multipart_alt (CT first_alt, CT new_part, int type, int subtype) {
                      boundary_in_content (&new_part->c_fp,
                                           new_part->c_file,
                                           boundary)) == NOTOK) {
-                    free_content (ct);
-                    return NULL;
+                    goto return_null;
                 }
             }
 
@@ -1782,8 +1774,7 @@ build_multipart_alt (CT first_alt, CT new_part, int type, int subtype) {
 
         if (found_boundary) {
             inform("giving up trying to find a unique boundary");
-            free_content (ct);
-            return NULL;
+            goto return_null;
         }
     }
 
@@ -1828,6 +1819,11 @@ build_multipart_alt (CT first_alt, CT new_part, int type, int subtype) {
     free (boundary);
 
     return ct;
+
+return_null:
+    free_content(ct);
+    free(boundary);
+    return NULL;
 }
 
 
@@ -2297,13 +2293,14 @@ strip_crs (CT ct, int *message_mods) {
                     inform("unable to write temporary file %s, continuing...",
                               stripped_content_file);
                     (void) m_unlink (stripped_content_file);
+                    free(stripped_content_file);
                     status = NOTOK;
                 } else {
                     /* Replace the decoded file with the converted one. */
                     if (ct->c_cefile.ce_file && ct->c_cefile.ce_unlink)
                         (void) m_unlink (ct->c_cefile.ce_file);
 
-                    mh_xfree(ct->c_cefile.ce_file);
+                    free(ct->c_cefile.ce_file);
                     ct->c_cefile.ce_file = stripped_content_file;
                     ct->c_cefile.ce_unlink = 1;