X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fsrc%2Fspool_in.c;h=79c21ba64f6bcab4456994547312c5652a1c66f3;hb=33191679e1a86ba6d9c38a74d0795d00c300f2c5;hp=e878b34eac6295d891d92f24cc55ff5bb429db99;hpb=08955dd349a1bfbbf1923bd87c04220d1174fb8f;p=user%2Fhenk%2Fcode%2Fexim.git diff --git a/src/src/spool_in.c b/src/src/spool_in.c index e878b34ea..79c21ba64 100644 --- a/src/src/spool_in.c +++ b/src/src/spool_in.c @@ -1,10 +1,10 @@ -/* $Cambridge: exim/src/src/spool_in.c,v 1.17 2006/10/10 11:15:12 ph10 Exp $ */ +/* $Cambridge: exim/src/src/spool_in.c,v 1.26 2009/11/16 19:50:37 nm4 Exp $ */ /************************************************* * Exim - an Internet mail transport agent * *************************************************/ -/* Copyright (c) University of Cambridge 1995 - 2006 */ +/* Copyright (c) University of Cambridge 1995 - 2009 */ /* See the file NOTICE for conditions of use and distribution. */ /* Functions for reading spool files. When compiling for a utility (eximon), @@ -255,6 +255,7 @@ interface_address = NULL; interface_port = 0; local_error_message = FALSE; local_scan_data = NULL; +max_received_linelength = 0; message_linecount = 0; received_protocol = NULL; received_count = 0; @@ -277,8 +278,10 @@ bmi_run = 0; bmi_verdicts = NULL; #endif -#ifdef EXPERIMENTAL_DOMAINKEYS -dk_do_verify = 0; +#ifndef DISABLE_DKIM +dkim_signers = NULL; +dkim_disable_verify = FALSE; +dkim_collect_input = FALSE; #endif #ifdef SUPPORT_TLS @@ -436,11 +439,14 @@ for (;;) else if (Ustrncmp(p, "cl ", 3) == 0) { int index, count; - uschar name[4]; + uschar name[20]; /* Need plenty of space for %d format */ tree_node *node; if (sscanf(CS big_buffer + 5, "%d %d", &index, &count) != 2) goto SPOOL_FORMAT_ERROR; - (void) string_format(name, 4, "%c%d", (index < 10 ? 'c' : 'm'), index); + if (index < 10) + (void) string_format(name, sizeof(name), "%c%d", 'c', index); + else if (index < 20) /* ignore out-of-range index */ + (void) string_format(name, sizeof(name), "%c%d", 'm', index - 10); node = acl_var_create(name); node->data.ptr = store_get(count + 1); if (fread(node->data.ptr, 1, count+1, f) < count) goto SPOOL_READ_ERROR; @@ -515,6 +521,8 @@ for (;;) case 'm': if (Ustrcmp(p, "anual_thaw") == 0) deliver_manual_thaw = TRUE; + else if (Ustrncmp(p, "ax_received_linelength", 22) == 0) + max_received_linelength = Uatoi(big_buffer + 24); break; case 'N':