X-Git-Url: http://git.marmaro.de/?p=mmh;a=blobdiff_plain;f=uip%2Fmhshowsbr.c;h=c7923c87db021f477770fc8c76484ccdd1198b71;hp=fe40f9d808171d39fac2a362fc1d26d094abee61;hb=6e9577f324bef90765a5edc02044eb111ec48072;hpb=822e01d48920e30e281c5144ae0977ac2bf27549 diff --git a/uip/mhshowsbr.c b/uip/mhshowsbr.c index fe40f9d..c7923c8 100644 --- a/uip/mhshowsbr.c +++ b/uip/mhshowsbr.c @@ -16,6 +16,9 @@ #include #include #include +#include +#include +#include extern int debugsw; @@ -73,7 +76,7 @@ show_all_messages(CT *cts) ** for showing headers of MIME messages. */ if (!formsw) - formsw = getcpy(etcpath("mhl.headers")); + formsw = mh_xstrdup(etcpath("mhl.headers")); /* ** If form is "mhl.null", suppress display of header. @@ -154,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: @@ -213,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; } @@ -329,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; @@ -479,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: @@ -524,7 +527,7 @@ show_text(CT ct, int alternate) } else { snprintf(buffer, sizeof(buffer), "%%lcat"); } - ct->c_showproc = getcpy(buffer); + ct->c_showproc = mh_xstrdup(buffer); return show_content_aux(ct, alternate, ct->c_showproc, NULL); } @@ -678,7 +681,7 @@ show_multi_aux(CT ct, int alternate, char *cp) return NOTOK; /* I'm not sure if this is necessary? */ - p->c_storage = getcpy(file); + p->c_storage = mh_xstrdup(file); if (p->c_showproc && strcmp(p->c_showproc, "true")==0) return (alternate ? DONE : OK); @@ -730,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; @@ -863,7 +866,7 @@ show_message_rfc822(CT ct, int alternate) /* default method for message/rfc822 */ if (ct->c_subtype == MESSAGE_RFC822) { - cp = (ct->c_showproc = getcpy("%lshow -file %F")); + cp = (ct->c_showproc = mh_xstrdup("%lshow -file %F")); return show_content_aux(ct, alternate, cp, NULL); } @@ -906,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) {