X-Git-Url: http://git.marmaro.de/?a=blobdiff_plain;f=uip%2Fmhparse.c;h=f04a3482017a0d5fced7a45d7ea6424921f4d852;hb=d4c34b4439a9dbd89664de460ed37ecddc260fb1;hp=488557281a2553ea7b70e714ea3f06f3ea69fa08;hpb=4dc39c08f07428ff5f39acd7b0ddee30e0a004f6;p=mmh diff --git a/uip/mhparse.c b/uip/mhparse.c index 4885572..f04a348 100644 --- a/uip/mhparse.c +++ b/uip/mhparse.c @@ -238,8 +238,7 @@ get_content(FILE *in, char *file, int toplevel) HF hp; /* allocate the content structure */ - if (!(ct = (CT) mh_xcalloc(1, sizeof(*ct)))) - adios(EX_OSERR, NULL, "out of memory"); + ct = mh_xcalloc(1, sizeof(*ct)); ct->c_fp = in; ct->c_file = getcpy(file); @@ -476,7 +475,7 @@ add_header(CT ct, char *name, char *value) HF hp; /* allocate header field structure */ - hp = mh_xmalloc(sizeof(*hp)); + hp = mh_xcalloc(1, sizeof(*hp)); /* link data into header structure */ hp->name = name; @@ -537,18 +536,18 @@ incl_name_value(unsigned char *buf, char *name, char *value) { *cp = '\0'; newbuf = concat(prefix, insertion, suffix, "\n", NULL); - free(suffix); + mh_free0(&suffix); } else { /* Append to end. */ newbuf = concat(buf, insertion, "\n", NULL); } - free(prefix); - free(insertion); - free(buf); + mh_free0(&prefix); + mh_free0(&insertion); + mh_free0(&buf); } - free(name_plus_equal); + mh_free0(&name_plus_equal); } return newbuf; @@ -566,7 +565,7 @@ extract_name_value(char *name_suffix, char *value) { char *name_suffix_equals = strstr(value, name_suffix_plus_quote); char *cp; - free(name_suffix_plus_quote); + mh_free0(&name_suffix_plus_quote); if (name_suffix_equals) { char *name_suffix_begin; @@ -578,7 +577,7 @@ extract_name_value(char *name_suffix, char *value) { for (; *cp != '"'; ++cp) ; - extracted_name_value = mh_xmalloc(cp - name_suffix_begin + 1); + extracted_name_value = mh_xcalloc(cp - name_suffix_begin + 1, sizeof(char)); memcpy(extracted_name_value, name_suffix_begin, cp - name_suffix_begin); extracted_name_value[cp - name_suffix_begin] = '\0'; @@ -778,8 +777,7 @@ bad_quote: */ if (magic && *cp == '<') { if (ct->c_id) { - free(ct->c_id); - ct->c_id = NULL; + mh_free0(&(ct->c_id)); } if (!(dp = strchr(ct->c_id = ++cp, '>'))) { advise(NULL, "invalid ID in message %s", ct->c_file); @@ -926,7 +924,7 @@ invalid: if (istype) { if ((dp = ci->ci_comment)) { ci->ci_comment = concat(dp, " ", buffer, NULL); - free(dp); + mh_free0(&dp); } else { ci->ci_comment = getcpy(buffer); } @@ -977,8 +975,7 @@ InitText(CT ct) ct->c_subtype = kv->kv_value; /* allocate text character set structure */ - if ((t = (struct text *) mh_xcalloc(1, sizeof(*t))) == NULL) - adios(EX_OSERR, NULL, "out of memory"); + t = mh_xcalloc(1, sizeof(*t)); ct->c_ctparams = (void *) t; /* scan for charset parameter */ @@ -1059,8 +1056,7 @@ InitMultiPart(CT ct) } /* allocate primary structure for multipart info */ - if ((m = (struct multipart *) mh_xcalloc(1, sizeof(*m))) == NULL) - adios(EX_OSERR, NULL, "out of memory"); + m = mh_xcalloc(1, sizeof(*m)); ct->c_ctparams = (void *) m; /* check if boundary parameter contains only whitespace characters */ @@ -1103,9 +1099,7 @@ InitMultiPart(CT ct) if (strcmp(buffer + 2, m->mp_start)!=0) continue; next_part: - if ((part = (struct part *) mh_xcalloc(1, sizeof(*part))) - == NULL) - adios(EX_OSERR, NULL, "out of memory"); + part = mh_xcalloc(1, sizeof(*part)); *next = part; next = &part->mp_next; @@ -1148,7 +1142,7 @@ end_part: continue; *next = NULL; free_content(p); - free((char *) part); + mh_free0(&part); } } @@ -1219,8 +1213,7 @@ reverse_parts(CT ct) i++; /* allocate array of pointers to the parts */ - if (!(base = (struct part **) mh_xcalloc((size_t) (i + 1), sizeof(*base)))) - adios(EX_OSERR, NULL, "out of memory"); + base = mh_xcalloc(i + 1, sizeof(*base)); bmp = base; /* point at all the parts */ @@ -1238,7 +1231,7 @@ reverse_parts(CT ct) *next = NULL; /* free array of pointers */ - free((char *) base); + mh_free0(&base); } @@ -1276,8 +1269,7 @@ InitMessage(CT ct) char **ap, **ep; struct partial *p; - if ((p = (struct partial *) mh_xcalloc(1, sizeof(*p))) == NULL) - adios(EX_OSERR, NULL, "out of memory"); + p = mh_xcalloc(1, sizeof(*p)); ct->c_ctparams = (void *) p; /* @@ -1389,8 +1381,7 @@ init_encoding(CT ct, OpenCEFunc openfnx) { CE ce; - if ((ce = (CE) mh_xcalloc(1, sizeof(*ce))) == NULL) - adios(EX_OSERR, NULL, "out of memory"); + ce = mh_xcalloc(1, sizeof(*ce)); ct->c_cefile = ce; ct->c_ceopenfnx = openfnx; @@ -1549,7 +1540,7 @@ openBase64(CT ct, char **file) adios(EX_IOERR, ce->ce_file, "unable to rename %s to ", file_org); } - free(file_org); + mh_free0(&file_org); } else { ce->ce_file = add(cp, ce->ce_file); @@ -1760,7 +1751,7 @@ openQuoted(CT ct, char **file) adios(EX_IOERR, ce->ce_file, "unable to rename %s to ", file_org); } - free(file_org); + mh_free0(&file_org); } else { ce->ce_file = add(cp, ce->ce_file); @@ -1977,7 +1968,7 @@ open7Bit(CT ct, char **file) adios(EX_IOERR, ce->ce_file, "unable to rename %s to ", file_org); } - free(file_org); + mh_free0(&file_org); } else { ce->ce_file = add(cp, ce->ce_file);