summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPhilip Hazel <ph10@hermes.cam.ac.uk>2005-11-15 10:08:24 +0000
committerPhilip Hazel <ph10@hermes.cam.ac.uk>2005-11-15 10:08:24 +0000
commita0d6ba8acc09196843fdea4132bb0814b2e81132 (patch)
tree60566ea7c8ab043c20b4f9148535f8ab7ad88a3f /src
parenteba0c039a556478f50aa1e4839684027746197f7 (diff)
Add check_rfc2047_length to disable length checking for encoded words.
Diffstat (limited to 'src')
-rw-r--r--src/ACKNOWLEDGMENTS5
-rw-r--r--src/src/expand.c5
-rw-r--r--src/src/globals.c3
-rw-r--r--src/src/globals.h3
-rw-r--r--src/src/mime.c4
-rw-r--r--src/src/readconf.c3
-rw-r--r--src/src/sieve.c4
7 files changed, 16 insertions, 11 deletions
diff --git a/src/ACKNOWLEDGMENTS b/src/ACKNOWLEDGMENTS
index 7d5f270ba..e4b9ee1b7 100644
--- a/src/ACKNOWLEDGMENTS
+++ b/src/ACKNOWLEDGMENTS
@@ -1,4 +1,4 @@
-$Cambridge: exim/src/ACKNOWLEDGMENTS,v 1.37 2005/11/02 16:32:58 ph10 Exp $
+$Cambridge: exim/src/ACKNOWLEDGMENTS,v 1.38 2005/11/15 10:08:25 ph10 Exp $
EXIM ACKNOWLEDGEMENTS
@@ -20,7 +20,7 @@ relatively small patches.
Philip Hazel
Lists created: 20 November 2002
-Last updated: 02 November 2005
+Last updated: 15 November 2005
THE OLD LIST
@@ -185,6 +185,7 @@ Everton da Silva Marques Suggested patch for SRV handling
Suggested patch for SRV/MX lookup retry option
Nikos Mavrogiannopoulos GnuTLS proof of concept code
Update to RSA and D-H parameter caching code
+Komar Maxim Patch for check_rfc2047_length
Andy Mell Fix for rejectlog regeneration bug
Marc Merlin Many suggestions and patches for callouts and
SMTP error message features
diff --git a/src/src/expand.c b/src/src/expand.c
index a501cfe04..f171c002c 100644
--- a/src/src/expand.c
+++ b/src/src/expand.c
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/src/src/expand.c,v 1.46 2005/10/12 11:20:41 ph10 Exp $ */
+/* $Cambridge: exim/src/src/expand.c,v 1.47 2005/11/15 10:08:25 ph10 Exp $ */
/*************************************************
* Exim - an Internet mail transport agent *
@@ -1205,7 +1205,8 @@ else
uschar *decoded, *error;
while (ptr > yield && isspace(ptr[-1])) ptr--;
*ptr = 0;
- decoded = rfc2047_decode2(yield, TRUE, charset, '?', NULL, newsize, &error);
+ decoded = rfc2047_decode2(yield, check_rfc2047_length, charset, '?', NULL,
+ newsize, &error);
if (error != NULL)
{
DEBUG(D_any) debug_printf("*** error in RFC 2047 decoding: %s\n"
diff --git a/src/src/globals.c b/src/src/globals.c
index 127af7607..9d2feb76e 100644
--- a/src/src/globals.c
+++ b/src/src/globals.c
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/src/src/globals.c,v 1.41 2005/11/14 16:09:54 ph10 Exp $ */
+/* $Cambridge: exim/src/src/globals.c,v 1.42 2005/11/15 10:08:25 ph10 Exp $ */
/*************************************************
* Exim - an Internet mail transport agent *
@@ -372,6 +372,7 @@ uschar *callout_random_local_part = US"$primary_hostname-$tod_epoch-testing";
uschar *check_dns_names_pattern= US"(?i)^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$";
int check_log_inodes = 0;
int check_log_space = 0;
+BOOL check_rfc2047_length = TRUE;
int check_spool_inodes = 0;
int check_spool_space = 0;
int clmacro_count = 0;
diff --git a/src/src/globals.h b/src/src/globals.h
index 3d8a45be5..140502a8e 100644
--- a/src/src/globals.h
+++ b/src/src/globals.h
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/src/src/globals.h,v 1.29 2005/09/13 11:13:27 ph10 Exp $ */
+/* $Cambridge: exim/src/src/globals.h,v 1.30 2005/11/15 10:08:25 ph10 Exp $ */
/*************************************************
* Exim - an Internet mail transport agent *
@@ -195,6 +195,7 @@ extern uschar *callout_random_local_part; /* Local part to be used to check if s
extern uschar *check_dns_names_pattern;/* Regex for syntax check */
extern int check_log_inodes; /* Minimum for message acceptance */
extern int check_log_space; /* Minimum for message acceptance */
+extern BOOL check_rfc2047_length; /* Check RFC 2047 encoded string length */
extern int check_spool_inodes; /* Minimum for message acceptance */
extern int check_spool_space; /* Minimum for message acceptance */
extern int clmacro_count; /* Number of command line macros */
diff --git a/src/src/mime.c b/src/src/mime.c
index 486fd3d1f..e0ac66cbe 100644
--- a/src/src/mime.c
+++ b/src/src/mime.c
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/src/src/mime.c,v 1.12 2005/08/16 12:32:32 tom Exp $ */
+/* $Cambridge: exim/src/src/mime.c,v 1.13 2005/11/15 10:08:25 ph10 Exp $ */
/*************************************************
* Exim - an Internet mail transport agent *
@@ -619,7 +619,7 @@ int mime_acl_check(uschar *acl, FILE *f, struct mime_boundary_context *context,
memset(param_value,0,param_value_len+1);
q = p + mime_parameter_list[j].namelen;
Ustrncpy(param_value, q, param_value_len);
- param_value = rfc2047_decode(param_value, TRUE, NULL, 32, &param_value_len, &q);
+ param_value = rfc2047_decode(param_value, check_rfc2047_length, NULL, 32, &param_value_len, &q);
debug_printf("Found %s MIME parameter in %s header, value is '%s'\n", mime_parameter_list[j].name, mime_header_list[i].name, param_value);
*((uschar **)(mime_parameter_list[j].value)) = param_value;
p += (mime_parameter_list[j].namelen + param_value_len + 1);
diff --git a/src/src/readconf.c b/src/src/readconf.c
index 2a0b9d120..0751b7750 100644
--- a/src/src/readconf.c
+++ b/src/src/readconf.c
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/src/src/readconf.c,v 1.14 2005/09/19 14:01:51 ph10 Exp $ */
+/* $Cambridge: exim/src/src/readconf.c,v 1.15 2005/11/15 10:08:25 ph10 Exp $ */
/*************************************************
* Exim - an Internet mail transport agent *
@@ -182,6 +182,7 @@ static optionlist optionlist_config[] = {
{ "callout_random_local_part",opt_stringptr, &callout_random_local_part },
{ "check_log_inodes", opt_int, &check_log_inodes },
{ "check_log_space", opt_Kint, &check_log_space },
+ { "check_rfc2047_length", opt_bool, &check_rfc2047_length },
{ "check_spool_inodes", opt_int, &check_spool_inodes },
{ "check_spool_space", opt_Kint, &check_spool_space },
{ "daemon_smtp_port", opt_stringptr|opt_hidden, &daemon_smtp_port },
diff --git a/src/src/sieve.c b/src/src/sieve.c
index b8ade713b..f92ac0369 100644
--- a/src/src/sieve.c
+++ b/src/src/sieve.c
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/src/src/sieve.c,v 1.14 2005/11/14 11:41:23 ph10 Exp $ */
+/* $Cambridge: exim/src/src/sieve.c,v 1.15 2005/11/15 10:08:25 ph10 Exp $ */
/*************************************************
* Exim - an Internet mail transport agent *
@@ -800,7 +800,7 @@ while (*r)
*t++=*r++;
}
*t++='\0';
-value->character=rfc2047_decode(s,TRUE,US"utf-8",'\0',&value->length,&errmsg);
+value->character=rfc2047_decode(s,check_rfc2047_length,US"utf-8",'\0',&value->length,&errmsg);
}