struct part **pp;
CT ct;
FILE *in;
+ HF hp;
umask(~m_gmprot());
/*
** Allocate space for primary (outside) content
*/
- if ((ct = (CT) calloc(1, sizeof(*ct))) == NULL)
+ if ((ct = (CT) mh_xcalloc(1, sizeof(*ct))) == NULL)
adios(EX_OSERR, NULL, "out of memory");
/*
}
/*
+ ** Iterate through the list of headers and call the function to
+ ** MIME-ify them if required.
+ */
+ for (hp = ct->c_first_hf; hp != NULL; hp = hp->next) {
+ if (encode_rfc2047(hp->name, &hp->value, NULL)) {
+ adios(EX_DATAERR, NULL, "Unable to encode header \"%s\"", hp->name);
+ }
+ }
+
+ /*
** Now add the MIME-Version header field
** to the list of header fields.
*/
ct->c_subtype = MULTI_MIXED;
ct->c_file = getcpy(infile);
- if ((m = (struct multipart *) calloc(1, sizeof(*m))) == NULL)
+ if ((m = (struct multipart *) mh_xcalloc(1, sizeof(*m))) == NULL)
adios(EX_OSERR, NULL, "out of memory");
ct->c_ctparams = (void *) m;
pp = &m->mp_parts;
if (!p)
continue;
- if ((part = (struct part *) calloc(1, sizeof(*part))) == NULL)
+ if ((part = (struct part *) mh_xcalloc(1, sizeof(*part))) == NULL)
adios(EX_OSERR, NULL, "out of memory");
*pp = part;
pp = &part->mp_next;
{
CE ce;
- if ((ce = (CE) calloc(1, sizeof(*ce))) == NULL)
+ if ((ce = (CE) mh_xcalloc(1, sizeof(*ce))) == NULL)
adios(EX_OSERR, NULL, "out of memory");
ct->c_cefile = ce;
}
/* allocate basic Content structure */
- if ((ct = (CT) calloc(1, sizeof(*ct))) == NULL)
+ if ((ct = (CT) mh_xcalloc(1, sizeof(*ct))) == NULL)
adios(EX_OSERR, NULL, "out of memory");
*ctp = ct;
ct->c_subtype = MULTI_DIGEST;
if ((m = (struct multipart *)
- calloc(1, sizeof(*m))) == NULL)
+ mh_xcalloc(1, sizeof(*m))) == NULL)
adios(EX_OSERR, NULL, "out of memory");
ct->c_ctparams = (void *) m;
pp = &m->mp_parts;
CT p;
CE pe;
- if ((p = (CT) calloc(1, sizeof(*p)))
+ if ((p = (CT) mh_xcalloc(1, sizeof(*p)))
== NULL)
adios(EX_OSERR, NULL, "out of memory");
init_decoded_content(p);
msgnum);
pe->ce_file = getcpy(buffer);
- if ((part = (struct part *) calloc(1, sizeof(*part))) == NULL)
+ if ((part = (struct part *) mh_xcalloc(1, sizeof(*part))) == NULL)
adios(EX_OSERR, NULL, "out of memory");
*pp = part;
pp = &part->mp_next;
ct->c_type = CT_MULTIPART;
ct->c_subtype = vrsn;
- if ((m = (struct multipart *) calloc(1, sizeof(*m))) == NULL)
+ if ((m = (struct multipart *) mh_xcalloc(1, sizeof(*m))) == NULL)
adios(EX_OSERR, NULL, "out of memory");
ct->c_ctparams = (void *) m;
continue;
if ((part = (struct part *)
- calloc(1, sizeof(*part))) == NULL)
+ mh_xcalloc(1, sizeof(*part))) == NULL)
adios(EX_OSERR, NULL, "out of memory");
*pp = part;
pp = &part->mp_next;
if (ct->c_descr) {
np = getcpy(DESCR_FIELD);
vp = concat(" ", ct->c_descr, NULL);
+ if (encode_rfc2047(DESCR_FIELD, &vp, NULL)) {
+ adios(EX_DATAERR, NULL, "Unable to encode %s header", DESCR_FIELD);
+ }
add_header(ct, np, vp);
}