projects
/
exim.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Enhance logging for unfound spoolfile
[exim.git]
/
src
/
src
/
mime.c
diff --git
a/src/src/mime.c
b/src/src/mime.c
index 6a64b26b1f8f6e8a17ff645029f0740130726a45..0339295f37c242010fe4924b5265be17143a6f47 100644
(file)
--- a/
src/src/mime.c
+++ b/
src/src/mime.c
@@
-2,8
+2,10
@@
* Exim - an Internet mail transport agent *
*************************************************/
* Exim - an Internet mail transport agent *
*************************************************/
-/* Copyright (c) Tom Kistner <tom@duncanthrax.net> 2004, 2015 */
-/* License: GPL */
+/* Copyright (c) Tom Kistner <tom@duncanthrax.net> 2004, 2015
+ * License: GPL
+ * Copyright (c) The Exim Maintainers 2016
+ */
#include "exim.h"
#ifdef WITH_CONTENT_SCAN /* entire file */
#include "exim.h"
#ifdef WITH_CONTENT_SCAN /* entire file */
@@
-304,7
+306,8
@@
decode_function =
size_counter = decode_function(mime_stream, decode_file, mime_current_boundary);
clearerr(mime_stream);
size_counter = decode_function(mime_stream, decode_file, mime_current_boundary);
clearerr(mime_stream);
-fseek(mime_stream, f_pos, SEEK_SET);
+if (fseek(mime_stream, f_pos, SEEK_SET))
+ return DEFER;
if (fclose(decode_file) != 0 || size_counter < 0)
return DEFER;
if (fclose(decode_file) != 0 || size_counter < 0)
return DEFER;
@@
-462,11
+465,11
@@
while (*s && *s != ';') /* ; terminates */
{
s++; /* skip opening " */
while (*s && *s != '"') /* " protects ; */
{
s++; /* skip opening " */
while (*s && *s != '"') /* " protects ; */
- val = string_cat(val, &size, &ptr, s++, 1);
+ val = string_cat
n
(val, &size, &ptr, s++, 1);
if (*s) s++; /* skip closing " */
}
else
if (*s) s++; /* skip closing " */
}
else
- val = string_cat(val, &size, &ptr, s++, 1);
+ val = string_cat
n
(val, &size, &ptr, s++, 1);
if (val) val[ptr] = '\0';
*sp = s;
return val;
if (val) val[ptr] = '\0';
*sp = s;
return val;
@@
-493,24
+496,24
@@
static uschar *
rfc2231_to_2047(const uschar * fname, const uschar * charset, int * len)
{
int size = 0, ptr = 0;
rfc2231_to_2047(const uschar * fname, const uschar * charset, int * len)
{
int size = 0, ptr = 0;
-uschar * val = string_cat(NULL, &size, &ptr, US"=?", 2);
+uschar * val = string_cat
n
(NULL, &size, &ptr, US"=?", 2);
uschar c;
if (charset)
uschar c;
if (charset)
- val = string_cat(val, &size, &ptr, charset
, Ustrlen(charset)
);
-val = string_cat(val, &size, &ptr, US"?Q?", 3);
+ val = string_cat(val, &size, &ptr, charset);
+val = string_cat
n
(val, &size, &ptr, US"?Q?", 3);
while ((c = *fname))
if (c == '%' && isxdigit(fname[1]) && isxdigit(fname[2]))
{
while ((c = *fname))
if (c == '%' && isxdigit(fname[1]) && isxdigit(fname[2]))
{
- val = string_cat(val, &size, &ptr, US"=", 1);
- val = string_cat(val, &size, &ptr, ++fname, 2);
+ val = string_cat
n
(val, &size, &ptr, US"=", 1);
+ val = string_cat
n
(val, &size, &ptr, ++fname, 2);
fname += 2;
}
else
fname += 2;
}
else
- val = string_cat(val, &size, &ptr, fname++, 1);
+ val = string_cat
n
(val, &size, &ptr, fname++, 1);
-val = string_cat(val, &size, &ptr, US"?=", 2);
+val = string_cat
n
(val, &size, &ptr, US"?=", 2);
val[*len = ptr] = '\0';
return val;
}
val[*len = ptr] = '\0';
return val;
}