ct->c_begin = ftell (ct->c_fp) + 1;
/*
* Parse the header fields for this
* content into a linked list.
*/
ct->c_begin = ftell (ct->c_fp) + 1;
/*
* Parse the header fields for this
* content into a linked list.
*/
- switch (state = m_getfld (&gstate, name, buf, &bufsz, in)) {
+ switch (state = m_getfld2(&gstate, name, buf, &bufsz)) {
/* if necessary, get rest of field */
while (state == FLDPLUS) {
bufsz = sizeof buf;
/* if necessary, get rest of field */
while (state == FLDPLUS) {
bufsz = sizeof buf;
- state = m_getfld (&gstate, name, buf, &bufsz, in);
+ state = m_getfld2(&gstate, name, buf, &bufsz);
ct->c_id = NULL;
if (!(dp = strchr(ct->c_id = ++cp, '>'))) {
inform("invalid ID in message %s", ct->c_file);
ct->c_id = NULL;
if (!(dp = strchr(ct->c_id = ++cp, '>'))) {
inform("invalid ID in message %s", ct->c_file);
- inform("extraneous information in message %s's %s: field\n%*s(%s)",
- ct->c_file, TYPE_FIELD, strlen(invo_name) + 2, "", cp);
+ inform("extraneous information in message %s's %s: field\n"
+ " (%s)", ct->c_file, TYPE_FIELD, cp);
- inform("extraneous information in message %s's %s: field\n%*s(%s)",
- ct->c_file, DISPO_FIELD, strlen(invo_name) + 2, "", cp);
+ inform("extraneous information in message %s's %s: field\n (%s)",
+ ct->c_file, DISPO_FIELD, cp);
inform("\"%s/%s\" type in message %s must be encoded in\n"
"7bit, 8bit, or binary, per RFC 2045 (6.4). "
inform("\"%s/%s\" type in message %s must be encoded in\n"
"7bit, 8bit, or binary, per RFC 2045 (6.4). "
if (! suppress_bogus_mp_content_warning) {
inform("bogus multipart content in message %s", ct->c_file);
}
if (! suppress_bogus_mp_content_warning) {
inform("bogus multipart content in message %s", ct->c_file);
}
{
struct multipart *m = (struct multipart *) ct->c_ctparams;
struct part *part, *prev, *head, *nhead, *ntail;
{
struct multipart *m = (struct multipart *) ct->c_ctparams;
struct part *part, *prev, *head, *nhead, *ntail;
- if (!strcasecmp(ci->ci_type, type) &&
- (!subtype || !strcasecmp(ci->ci_subtype, subtype))) {
+ if (!strcasecmp(ci->ci_type, pref->type) &&
+ (!pref->subtype ||
+ !strcasecmp(ci->ci_subtype, pref->subtype))) {
- for (i = npreferred-1; i >= 0; i--)
- move_preferred_part(ct, preferred_types[i], preferred_subtypes[i]);
+ for (i = 0; i < npreferred; i++)
+ move_preferred_part(ct, mime_preference + i);
example, a text/plain part before a text/html part in a
multipart/alternative part, for example, where it belongs. */
void
example, a text/plain part before a text/html part in a
multipart/alternative part, for example, where it belongs. */
void
/* scan for parameters "id", "number", and "total" */
for (pm = ci->ci_first_pm; pm; pm = pm->pm_next) {
if (!strcasecmp (pm->pm_name, "id")) {
/* scan for parameters "id", "number", and "total" */
for (pm = ci->ci_first_pm; pm; pm = pm->pm_next) {
if (!strcasecmp (pm->pm_name, "id")) {
if (fstat (fd, &st) != NOTOK)
size = (long) st.st_size;
if (fstat (fd, &st) != NOTOK)
size = (long) st.st_size;
char *cp, *buffer = NULL;
/* sbeck -- handle suffixes */
CI ci;
char *cp, *buffer = NULL;
/* sbeck -- handle suffixes */
CI ci;
if (ce->ce_unlink) {
/* Create temporary file with filename extension. */
if ((ce->ce_file = m_mktemps(invo_name, cp, NULL, NULL)) == NULL) {
if (ce->ce_unlink) {
/* Create temporary file with filename extension. */
if ((ce->ce_file = m_mktemps(invo_name, cp, NULL, NULL)) == NULL) {
} else if (*file == NULL) {
char *tempfile;
if ((tempfile = m_mktemp2(NULL, invo_name, NULL, NULL)) == NULL) {
} else if (*file == NULL) {
char *tempfile;
if ((tempfile = m_mktemp2(NULL, invo_name, NULL, NULL)) == NULL) {
*cp = '\0';
if (decodeBase64 (buffer, &decoded, &decoded_len, ct->c_type == CT_TEXT,
*cp = '\0';
if (decodeBase64 (buffer, &decoded, &decoded_len, ct->c_type == CT_TEXT,
- int cc, digested, len, quoted, own_ct_fp = 0;
+ int cc, digested, len, quoted;
+ bool own_ct_fp = false;
if (ce->ce_unlink) {
/* Create temporary file with filename extension. */
if ((ce->ce_file = m_mktemps(invo_name, cp, NULL, NULL)) == NULL) {
if (ce->ce_unlink) {
/* Create temporary file with filename extension. */
if ((ce->ce_file = m_mktemps(invo_name, cp, NULL, NULL)) == NULL) {
} else if (*file == NULL) {
char *tempfile;
if ((tempfile = m_mktemp2(NULL, invo_name, NULL, NULL)) == NULL) {
} else if (*file == NULL) {
char *tempfile;
if ((tempfile = m_mktemp2(NULL, invo_name, NULL, NULL)) == NULL) {
if (! ct->c_fp) {
if ((ct->c_fp = fopen (ct->c_file, "r")) == NULL) {
content_error (ct->c_file, ct, "unable to open for reading");
return NOTOK;
}
if (! ct->c_fp) {
if ((ct->c_fp = fopen (ct->c_file, "r")) == NULL) {
content_error (ct->c_file, ct, "unable to open for reading");
return NOTOK;
}
unsigned char digest[16];
MD5Final (digest, &mdContext);
unsigned char digest[16];
MD5Final (digest, &mdContext);
- if (memcmp((char *) digest, (char *) ct->c_digest,
- sizeof(digest) / sizeof(digest[0])))
+ if (memcmp(digest, ct->c_digest,
+ sizeof digest))
if (ce->ce_unlink) {
/* Create temporary file with filename extension. */
if ((ce->ce_file = m_mktemps(invo_name, cp, NULL, NULL)) == NULL) {
if (ce->ce_unlink) {
/* Create temporary file with filename extension. */
if ((ce->ce_file = m_mktemps(invo_name, cp, NULL, NULL)) == NULL) {
} else if (*file == NULL) {
char *tempfile;
if ((tempfile = m_mktemp2(NULL, invo_name, NULL, NULL)) == NULL) {
} else if (*file == NULL) {
char *tempfile;
if ((tempfile = m_mktemp2(NULL, invo_name, NULL, NULL)) == NULL) {
len = 0;
fprintf (ce->ce_fp, "%s: %s/%s", TYPE_FIELD, ci->ci_type, ci->ci_subtype);
len = 0;
fprintf (ce->ce_fp, "%s: %s/%s", TYPE_FIELD, ci->ci_type, ci->ci_subtype);
+ 1 + strlen (ci->ci_subtype);
buffer = output_params(len, ci->ci_first_pm, &len, 0);
+ 1 + strlen (ci->ci_subtype);
buffer = output_params(len, ci->ci_first_pm, &len, 0);
if (! ct->c_fp) {
if ((ct->c_fp = fopen (ct->c_file, "r")) == NULL) {
content_error (ct->c_file, ct, "unable to open for reading");
return NOTOK;
}
if (! ct->c_fp) {
if ((ct->c_fp = fopen (ct->c_file, "r")) == NULL) {
content_error (ct->c_file, ct, "unable to open for reading");
return NOTOK;
}
- if (find_cache (ct, rcachesw, (int *) 0, cb->c_id,
+ if (find_cache(ct, rcachesw, NULL, cb->c_id,
cachefile, sizeof(cachefile)) != NOTOK) {
if ((ce->ce_fp = fopen (cachefile, "r"))) {
ce->ce_file = mh_xstrdup(cachefile);
cachefile, sizeof(cachefile)) != NOTOK) {
if ((ce->ce_fp = fopen (cachefile, "r"))) {
ce->ce_file = mh_xstrdup(cachefile);
if (ferror (gp)) {
admonish (ce->ce_file, "error reading");
(void) m_unlink (cachefile);
if (ferror (gp)) {
admonish (ce->ce_file, "error reading");
(void) m_unlink (cachefile);
- }
- else
- if (ferror (fp)) {
- admonish (cachefile, "error writing");
- (void) m_unlink (cachefile);
- }
+ } else if (ferror (fp)) {
+ admonish (cachefile, "error writing");
+ (void) m_unlink (cachefile);
+ }
int len, buflen;
char *bp, *ftp, *user, *pass;
char buffer[BUFSIZ], cachefile[BUFSIZ];
int len, buflen;
char *bp, *ftp, *user, *pass;
char buffer[BUFSIZ], cachefile[BUFSIZ];
cachefile[0] = '\0';
if ((!e->eb_permission || strcasecmp (e->eb_permission, "read-write"))
&& find_cache (NULL, wcachesw, &cachetype, e->eb_content->c_id,
cachefile, sizeof(cachefile)) != NOTOK) {
if (*file == NULL) {
ce->ce_unlink = 0;
cachefile[0] = '\0';
if ((!e->eb_permission || strcasecmp (e->eb_permission, "read-write"))
&& find_cache (NULL, wcachesw, &cachetype, e->eb_content->c_id,
cachefile, sizeof(cachefile)) != NOTOK) {
if (*file == NULL) {
ce->ce_unlink = 0;
else {
char *tempfile;
if ((tempfile = m_mktemp2(NULL, invo_name, NULL, NULL)) == NULL) {
else {
char *tempfile;
if ((tempfile = m_mktemp2(NULL, invo_name, NULL, NULL)) == NULL) {
if (ferror (gp)) {
admonish (ce->ce_file, "error reading");
(void) m_unlink (cachefile);
if (ferror (gp)) {
admonish (ce->ce_file, "error reading");
(void) m_unlink (cachefile);
- }
- else
- if (ferror (fp)) {
- admonish (cachefile, "error writing");
- (void) m_unlink (cachefile);
- }
+ } else if (ferror (fp)) {
+ admonish (cachefile, "error writing");
+ (void) m_unlink (cachefile);
+ }
int len, buflen;
char *bp, buffer[BUFSIZ], *vec[7];
struct exbody *e = ct->c_ctexbody;
int len, buflen;
char *bp, buffer[BUFSIZ], *vec[7];
struct exbody *e = ct->c_ctexbody;
if (*file == NULL) {
char *tempfile;
if ((tempfile = m_mktemp2(NULL, invo_name, NULL, NULL)) == NULL) {
if (*file == NULL) {
char *tempfile;
if ((tempfile = m_mktemp2(NULL, invo_name, NULL, NULL)) == NULL) {
ct->c_showproc = mh_xstrdup("true");
fseek (ce->ce_fp, 0L, SEEK_SET);
ct->c_showproc = mh_xstrdup("true");
fseek (ce->ce_fp, 0L, SEEK_SET);
cachefile[0] = '\0';
if (find_cache(NULL, wcachesw, &cachetype, e->eb_content->c_id,
cachefile, sizeof(cachefile)) != NOTOK) {
if (*file == NULL) {
ce->ce_unlink = 0;
cachefile[0] = '\0';
if (find_cache(NULL, wcachesw, &cachetype, e->eb_content->c_id,
cachefile, sizeof(cachefile)) != NOTOK) {
if (*file == NULL) {
ce->ce_unlink = 0;
else {
char *tempfile;
if ((tempfile = m_mktemp2(NULL, invo_name, NULL, NULL)) == NULL) {
else {
char *tempfile;
if ((tempfile = m_mktemp2(NULL, invo_name, NULL, NULL)) == NULL) {
execvp(program, args.msgs);
fprintf(stderr, "Unable to exec ");
perror(program);
execvp(program, args.msgs);
fprintf(stderr, "Unable to exec ");
perror(program);
size_t len;
if (decodeBase64 (cp, &digest, &len, 0, NULL) == OK) {
size_t len;
if (decodeBase64 (cp, &digest, &len, 0, NULL) == OK) {
if (strlen ((char *) digest) <= maxlen) {
memcpy (ct->c_digest, digest, maxlen);
if (strlen ((char *) digest) <= maxlen) {
memcpy (ct->c_digest, digest, maxlen);
while (*cp == ';') {
char *dp, *vp, *up, *nameptr, *valptr, *charset = NULL, *lang = NULL;
while (*cp == ';') {
char *dp, *vp, *up, *nameptr, *valptr, *charset = NULL, *lang = NULL;
- inform("invalid parameter in message %s's %s: "
- "field\n%*sparameter %s (error detected at offset %d)",
- filename, fieldname, strlen(invo_name) + 2, "",cp, dp - cp);
+ inform("invalid parameter in message %s's %s: field\n"
+ " parameter %s (error detected at offset %ld)",
+ filename, fieldname, cp, (long)(dp - cp));
- inform("invalid parameter index in message %s's "
- "%s: field\n%*s(parameter %s)", filename,
- fieldname, strlen(invo_name) + 2, "", cp);
+ inform("invalid parameter index in message %s's %s: field"
+ "\n (parameter %s)", filename, fieldname, cp);
- inform("missing charset in message %s's %s: "
- "field\n%*s(parameter %s)", filename, fieldname,
- strlen(invo_name) + 2, "", nameptr);
+ inform("missing charset in message %s's %s: field\n"
+ " (parameter %s)", filename, fieldname, nameptr);
- inform("missing language tag in message %s's %s: "
- "field\n%*s(parameter %s)", filename, fieldname,
- strlen(invo_name) + 2, "", nameptr);
+ inform("missing language tag in message %s's %s: field\n"
+ " (parameter %s)", filename, fieldname, nameptr);
- inform("invalid encoded sequence in message "
- "%s's %s: field\n%*s(parameter %s)",
- filename, fieldname, strlen(invo_name) + 2,
- "", nameptr);
+ inform("invalid encoded sequence in message %s's %s: field\n"
+ " (parameter %s)", filename, fieldname, nameptr);
- inform("invalid quoted-string in message %s's %s: "
- "field\n%*s(parameter %s)", filename,
- fieldname, strlen(invo_name) + 2, "", nameptr);
+ inform("invalid quoted-string in message %s's %s: field\n"
+ " (parameter %s)", filename, fieldname, nameptr);
- inform("duplicate index (%d) in message "
- "%s's %s: field\n%*s(parameter %s)", sp->index,
- filename, fieldname, strlen(invo_name) + 2, "",
- nameptr);
+ inform("duplicate index (%d) in message %s's %s: field"
+ "\n (parameter %s)", sp->index, filename,
+ fieldname, nameptr);
- inform("Internal error: cannot insert partial "
- "param in message %s's %s: field\n%*s(parameter %s)",
- filename, fieldname, strlen(invo_name) + 2, "",
- nameptr);
+ inform("Internal error: cannot insert partial param "
+ "in message %s's %s: field\n (parameter %s)",
+ filename, fieldname, nameptr);
- inform("missing section %d for parameter in "
- "message %s's %s: field\n%*s(parameter %s)", pindex - 1,
- filename, fieldname, strlen(invo_name) + 2, "",
- pp->name);
+ inform("missing section %d for parameter in message "
+ "%s's %s: field\n (parameter %s)", pindex - 1,
+ filename, fieldname, pp->name);
char *ret_charset = NULL;
ret_charset = get_param(ct->c_ctinfo.ci_first_pm, "charset", '?', 0);
char *ret_charset = NULL;
ret_charset = get_param(ct->c_ctinfo.ci_first_pm, "charset", '?', 0);
if (strlen(params->pm_name) > CPERLIN) {
inform("Parameter name \"%s\" is too long", params->pm_name);
if (strlen(params->pm_name) > CPERLIN) {
inform("Parameter name \"%s\" is too long", params->pm_name);
if (! pm->pm_charset) {
pm->pm_charset = mh_xstrdup(write_charset_8bit());
if (strcasecmp(pm->pm_charset, "US-ASCII") == 0)
if (! pm->pm_charset) {
pm->pm_charset = mh_xstrdup(write_charset_8bit());
if (strcasecmp(pm->pm_charset, "US-ASCII") == 0)