X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=src%2Fsrc%2Fmime.c;h=d47b569827795cbfaeed88d6a47319c895bb4d77;hb=c31e16a54f91476ce97ccd4d53a18c5bced1b320;hp=5dcbaa40f9005d89f123caf42bd503bbb859d6a8;hpb=13c7874e0a41d696ecf55774d62ea7d11778414f;p=exim.git diff --git a/src/src/mime.c b/src/src/mime.c index 5dcbaa40f..d47b56982 100644 --- a/src/src/mime.c +++ b/src/src/mime.c @@ -395,10 +395,7 @@ if ((num_copied > 0) && (header[num_copied-1] != ';')) header[num_copied] = '\0'; /* return 0 for EOF or empty line */ -if ((c == EOF) || (num_copied == 1)) - return 0; -else - return 1; +return c == EOF || num_copied == 1 ? 0 : 1; } @@ -502,8 +499,8 @@ int rc = OK; uschar * header = NULL; struct mime_boundary_context nested_context; -/* reserve a line buffer to work in */ -header = store_get(MIME_MAX_HEADER_SIZE+1); +/* reserve a line buffer to work in. Assume tainted data. */ +header = store_get(MIME_MAX_HEADER_SIZE+1, TRUE); /* Not actually used at the moment, but will be vital to fixing * some RFC 2046 nonconformance later... */ @@ -557,11 +554,9 @@ while(1) /* parse headers, set up expansion variables */ while (mime_get_header(f, header)) - { - struct mime_header * mh; /* look for interesting headers */ - for (mh = mime_header_list; + for (struct mime_header * mh = mime_header_list; mh < mime_header_list + mime_header_list_size; mh++) if (strncmpic(mh->name, header, mh->namelen) == 0) { @@ -589,8 +584,6 @@ while(1) while (*p) { - mime_parameter * mp; - DEBUG(D_acl) debug_printf_indent("MIME: considering paramlist '%s'\n", p); if ( !mime_filename @@ -661,7 +654,7 @@ while(1) else /* look for interesting parameters */ - for (mp = mime_parameter_list; + for (mime_parameter * mp = mime_parameter_list; mp < mime_parameter_list + nelem(mime_parameter_list); mp++ ) if (strncmpic(mp->name, p, mp->namelen) == 0) @@ -701,7 +694,6 @@ while(1) } } } - } /* set additional flag variables (easier access) */ if ( mime_content_type