Replace free() with mh_free0()
[mmh] / uip / mhshowsbr.c
index 71c1699..6298869 100644 (file)
 #include <fcntl.h>
 #include <h/signals.h>
 #include <errno.h>
-#include <setjmp.h>
 #include <signal.h>
 #include <h/tws.h>
 #include <h/mime.h>
 #include <h/mhparse.h>
 #include <h/utils.h>
 #include <sys/wait.h>
+#include <unistd.h>
+#include <sys/stat.h>
+#include <sysexits.h>
 
 extern int debugsw;
 
@@ -155,14 +157,14 @@ DisplayMsgHeader(CT ct, char *form)
 
        switch (child_id = fork()) {
        case NOTOK:
-               adios("fork", "unable to");
+               adios(EX_OSERR, "fork", "unable to");
                /* NOTREACHED */
 
        case OK:
                execvp("mhl", vec);
                fprintf(stderr, "unable to exec ");
                perror("mhl");
-               _exit(-1);
+               _exit(EX_OSERR);
                /* NOTREACHED */
 
        default:
@@ -214,7 +216,7 @@ show_switch(CT ct, int alternate)
                break;
 
        default:
-               adios(NULL, "unknown content type %d", ct->c_type);
+               adios(EX_DATAERR, NULL, "unknown content type %d", ct->c_type);
                break;
        }
 
@@ -330,7 +332,7 @@ show_content_aux(CT ct, int alternate, char *cp, char *cracked)
 
                                        s = trimcpy(ct->c_descr);
                                        strncpy(bp, s, buflen);
-                                       free(s);
+                                       mh_free0(&s);
                                }
                                break;
 
@@ -480,7 +482,7 @@ show_content_aux2(CT ct, int alternate, char *cracked,
                execlp("/bin/sh", "/bin/sh", "-c", buffer, NULL);
                fprintf(stderr, "unable to exec ");
                perror("/bin/sh");
-               _exit(-1);
+               _exit(EX_OSERR);
                /* NOTREACHED */
 
        default:
@@ -731,7 +733,7 @@ show_multi_aux(CT ct, int alternate, char *cp)
 
                                        s = trimcpy(ct->c_descr);
                                        strncpy(bp, s, buflen);
-                                       free(s);
+                                       mh_free0(&s);
                                }
                                break;
 
@@ -907,12 +909,12 @@ show_external(CT ct, int alternate)
                msg = add(concat("\t", *ap, ": ", *ep, NULL), msg);
        }
        if (!(fp = fopen(ct->c_file, "r"))) {
-               adios(ct->c_file, "unable to open");
+               adios(EX_IOERR, ct->c_file, "unable to open");
        }
        fseek(fp, ct->c_begin, SEEK_SET);
        while (!feof(fp) && ftell(fp) < ct->c_end) {
                if (!fgets(buf, sizeof buf, fp)) {
-                       adios(ct->c_file, "unable to read");
+                       adios(EX_IOERR, ct->c_file, "unable to read");
                }
                *strchr(buf, '\n') = '\0';
                if (!*buf) {