X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/fdeb1f8d93ee914a3493c5331a24353c1febb87d..888c7cccce9b0259d87383df77503b17a4284b86:/uip/mhparse.c diff --git a/uip/mhparse.c b/uip/mhparse.c index 56374b23..a4998345 100644 --- a/uip/mhparse.c +++ b/uip/mhparse.c @@ -59,6 +59,7 @@ struct k2v SubMultiPart[] = { { "alternative", MULTI_ALTERNATE }, { "digest", MULTI_DIGEST }, { "parallel", MULTI_PARALLEL }, + { "related", MULTI_RELATED }, { NULL, MULTI_UNKNOWN } /* this one must be last! */ }; @@ -1179,7 +1180,6 @@ next_part: if (!(p = get_content (fp, ct->c_file, ct->c_subtype == MULTI_DIGEST ? -1 : 0))) { free(bufp); - fclose (ct->c_fp); ct->c_fp = NULL; return NOTOK; } @@ -2127,6 +2127,7 @@ ready_to_go: fclose (ct->c_fp); ct->c_fp = NULL; } + free (bufp); return fileno (ce->ce_fp); clean_up: @@ -2135,6 +2136,7 @@ clean_up: fclose (ct->c_fp); ct->c_fp = NULL; } + free (bufp); return NOTOK; } @@ -3148,6 +3150,8 @@ ct_subtype_str (int type, int subtype) { return "digest"; case MULTI_PARALLEL: return "parallel"; + case MULTI_RELATED: + return "related"; default: return "unknown_multipart_subtype"; } @@ -3550,6 +3554,7 @@ bad_quote: "%s's %s: field\n%*s(parameter %s)", sp->index, filename, fieldname, strlen(invo_name) + 2, "", nameptr); + free (nameptr); return NOTOK; } if (sp2->index < sp->index && @@ -3565,6 +3570,7 @@ bad_quote: "param in message %s's %s: field\n%*s(parameter %s)", filename, fieldname, strlen(invo_name) + 2, "", nameptr); + free (nameptr); return NOTOK; } } @@ -3649,7 +3655,7 @@ content_charset (CT ct) { ret_charset = get_param(ct->c_ctinfo.ci_first_pm, "charset", '?', 0); - return getcpy (ret_charset ? ret_charset : "US-ASCII"); + return ret_charset ? ret_charset : getcpy ("US-ASCII"); }