git://git.exim.org
/
users
/
jgh
/
exim.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
7c7d482
)
Added basic MIME ACL decoding errorlevels
author
Tom Kistner
<tom@duncanthrax.net>
Wed, 15 Dec 2004 11:51:08 +0000
(11:51 +0000)
committer
Tom Kistner
<tom@duncanthrax.net>
Wed, 15 Dec 2004 11:51:08 +0000
(11:51 +0000)
src/OS/Makefile-Base
patch
|
blob
|
history
src/exim_monitor/em_globals.c
patch
|
blob
|
history
src/src/globals.c
patch
|
blob
|
history
src/src/globals.h
patch
|
blob
|
history
src/src/mime.c
patch
|
blob
|
history
src/src/mime.h
patch
|
blob
|
history
src/src/spf.c
patch
|
blob
|
history
diff --git
a/src/OS/Makefile-Base
b/src/OS/Makefile-Base
index 565ed1c42506bd8563deda9530a91392c23f8daf..3990f2ff4126d4bc2a1237f0110d46ca84bd3b75 100644
(file)
--- a/
src/OS/Makefile-Base
+++ b/
src/OS/Makefile-Base
@@
-1,4
+1,4
@@
-# $Cambridge: exim/src/OS/Makefile-Base,v 1.1.2.
4 2004/12/10 09:24:3
8 tom Exp $
+# $Cambridge: exim/src/OS/Makefile-Base,v 1.1.2.
5 2004/12/15 11:51:0
8 tom Exp $
# This file is the basis of the main makefile for Exim and friends. The
# makefile at the top level arranges to build the main makefile by calling
# This file is the basis of the main makefile for Exim and friends. The
# makefile at the top level arranges to build the main makefile by calling
@@
-320,7
+320,7
@@
exim: pcre/libpcre.a lookups/lookups.a auths/auths.a \
auths/auths.a \
$(LIBRESOLV) $(LIBS) $(LIBS_EXIM) $(IPV6_LIBS) $(EXTRALIBS) \
$(EXTRALIBS_EXIM) $(DBMLIB) $(LOOKUP_LIBS) $(AUTH_LIBS) \
auths/auths.a \
$(LIBRESOLV) $(LIBS) $(LIBS_EXIM) $(IPV6_LIBS) $(EXTRALIBS) \
$(EXTRALIBS_EXIM) $(DBMLIB) $(LOOKUP_LIBS) $(AUTH_LIBS) \
- $(PERL_LIBS) $(TLS_LIBS)
+ $(PERL_LIBS) $(TLS_LIBS)
$(LDFLAGS)
@if [ x"$(STRIP_COMMAND)" != x"" ]; then \
echo $(STRIP_COMMAND) exim; \
$(STRIP_COMMAND) exim; \
@if [ x"$(STRIP_COMMAND)" != x"" ]; then \
echo $(STRIP_COMMAND) exim; \
$(STRIP_COMMAND) exim; \
diff --git
a/src/exim_monitor/em_globals.c
b/src/exim_monitor/em_globals.c
index a0b28136d196ce488bab9025ab83db036d352bb8..a8e17f3668958e6d096ae018a781bb9cca1d70ba 100644
(file)
--- a/
src/exim_monitor/em_globals.c
+++ b/
src/exim_monitor/em_globals.c
@@
-1,4
+1,4
@@
-/* $Cambridge: exim/src/exim_monitor/em_globals.c,v 1.1.2.
1 2004/12/02 09:15:11
tom Exp $ */
+/* $Cambridge: exim/src/exim_monitor/em_globals.c,v 1.1.2.
2 2004/12/15 11:51:09
tom Exp $ */
/*************************************************
* Exim Monitor *
/*************************************************
* Exim Monitor *
@@
-44,6
+44,11
@@
uschar actioned_message[24];
uschar *action_required;
uschar *alternate_config = NULL;
uschar *action_required;
uschar *alternate_config = NULL;
+#ifdef EXPERIMENTAL_BRIGHTMAIL
+int bmi_run = 0;
+uschar *bmi_verdicts = NULL;
+#endif
+
int body_max = 20000;
uschar *exim_path = US BIN_DIRECTORY "/exim"
int body_max = 20000;
uschar *exim_path = US BIN_DIRECTORY "/exim"
diff --git
a/src/src/globals.c
b/src/src/globals.c
index c36f47c4d240d7fa431c6b9df4cdef56515650c7..87613662cf232c1fac0466aa4c5ba000d0ef3daa 100644
(file)
--- a/
src/src/globals.c
+++ b/
src/src/globals.c
@@
-1,4
+1,4
@@
-/* $Cambridge: exim/src/src/globals.c,v 1.6.2.
5 2004/12/10 14:59:08
tom Exp $ */
+/* $Cambridge: exim/src/src/globals.c,v 1.6.2.
6 2004/12/15 11:51:09
tom Exp $ */
/*************************************************
* Exim - an Internet mail transport agent *
/*************************************************
* Exim - an Internet mail transport agent *
@@
-692,7
+692,7
@@
uschar *message_reference = NULL;
/* MIME ACL expandables */
#ifdef WITH_CONTENT_SCAN
/* MIME ACL expandables */
#ifdef WITH_CONTENT_SCAN
-
uschar *
mime_anomaly_level = NULL;
+
int
mime_anomaly_level = NULL;
uschar *mime_anomaly_text = NULL;
uschar *mime_boundary = NULL;
uschar *mime_charset = NULL;
uschar *mime_anomaly_text = NULL;
uschar *mime_boundary = NULL;
uschar *mime_charset = NULL;
diff --git
a/src/src/globals.h
b/src/src/globals.h
index 84c95e45b7e9eb4ea8c424a2ce673580cc574c30..4860785cb4b8279d4a8f9ded6461ef0b68651ae1 100644
(file)
--- a/
src/src/globals.h
+++ b/
src/src/globals.h
@@
-1,4
+1,4
@@
-/* $Cambridge: exim/src/src/globals.h,v 1.6.2.
4 2004/12/10 14:59:08
tom Exp $ */
+/* $Cambridge: exim/src/src/globals.h,v 1.6.2.
5 2004/12/15 11:51:09
tom Exp $ */
/*************************************************
* Exim - an Internet mail transport agent *
/*************************************************
* Exim - an Internet mail transport agent *
@@
-410,7
+410,7
@@
extern uschar *message_reference; /* Reference for error messages */
/* MIME ACL expandables */
#ifdef WITH_CONTENT_SCAN
/* MIME ACL expandables */
#ifdef WITH_CONTENT_SCAN
-extern
uschar *
mime_anomaly_level;
+extern
int
mime_anomaly_level;
extern uschar *mime_anomaly_text;
extern uschar *mime_boundary;
extern uschar *mime_charset;
extern uschar *mime_anomaly_text;
extern uschar *mime_boundary;
extern uschar *mime_charset;
diff --git
a/src/src/mime.c
b/src/src/mime.c
index ac0126d1864b51624d543848c31920948b7af072..e2bdc6ede61a7b0cdab20e684c352ebd7b60b652 100644
(file)
--- a/
src/src/mime.c
+++ b/
src/src/mime.c
@@
-1,4
+1,4
@@
-/* $Cambridge: exim/src/src/mime.c,v 1.1.2.
3 2004/11/30 15:18:58
tom Exp $ */
+/* $Cambridge: exim/src/src/mime.c,v 1.1.2.
4 2004/12/15 11:51:09
tom Exp $ */
/*************************************************
* Exim - an Internet mail transport agent *
/*************************************************
* Exim - an Internet mail transport agent *
@@
-15,6
+15,19
@@
FILE *mime_stream = NULL;
uschar *mime_current_boundary = NULL;
FILE *mime_stream = NULL;
uschar *mime_current_boundary = NULL;
+/*************************************************
+* set MIME anomaly level + text *
+*************************************************/
+
+/* Small wrapper to set the two expandables which
+ give info on detected "problems" in MIME
+ encodings. Those are defined in mime.h. */
+
+void mime_set_anomaly(int level, char *text) {
+ mime_anomaly_level = level;
+ mime_anomaly_text = text;
+};
+
/*************************************************
* decode quoted-printable chars *
/*************************************************
* decode quoted-printable chars *
@@
-131,6
+144,7
@@
uschar *mime_parse_line(uschar *buffer, uschar *encoding, int *num_decoded) {
while (*(p+offset) != '\0') {
/* hit illegal char ? */
if (mime_b64[*(p+offset)] == 128) {
while (*(p+offset) != '\0') {
/* hit illegal char ? */
if (mime_b64[*(p+offset)] == 128) {
+ mime_set_anomaly(MIME_ANOMALY_BROKEN_BASE64);
offset++;
}
else {
offset++;
}
else {
@@
-148,6
+162,7
@@
uschar *mime_parse_line(uschar *buffer, uschar *encoding, int *num_decoded) {
/* byte 0 ---------------------- */
if (*(p+1) == 255) {
/* byte 0 ---------------------- */
if (*(p+1) == 255) {
+ mime_set_anomaly(MIME_ANOMALY_BROKEN_BASE64);
break;
}
data[(*num_decoded)] = *p;
break;
}
data[(*num_decoded)] = *p;
@@
-159,6
+174,7
@@
uschar *mime_parse_line(uschar *buffer, uschar *encoding, int *num_decoded) {
p++;
/* byte 1 ---------------------- */
if (*(p+1) == 255) {
p++;
/* byte 1 ---------------------- */
if (*(p+1) == 255) {
+ mime_set_anomaly(MIME_ANOMALY_BROKEN_BASE64);
break;
}
data[(*num_decoded)] = *p;
break;
}
data[(*num_decoded)] = *p;
@@
-170,6
+186,7
@@
uschar *mime_parse_line(uschar *buffer, uschar *encoding, int *num_decoded) {
p++;
/* byte 2 ---------------------- */
if (*(p+1) == 255) {
p++;
/* byte 2 ---------------------- */
if (*(p+1) == 255) {
+ mime_set_anomaly(MIME_ANOMALY_BROKEN_BASE64);
break;
}
data[(*num_decoded)] = *p;
break;
}
data[(*num_decoded)] = *p;
@@
-195,6
+212,7
@@
uschar *mime_parse_line(uschar *buffer, uschar *encoding, int *num_decoded) {
if (decode_qp_result == -2) {
/* Error from decoder. p is unchanged. */
if (decode_qp_result == -2) {
/* Error from decoder. p is unchanged. */
+ mime_set_anomaly(MIME_ANOMALY_BROKEN_QP);
data[(*num_decoded)] = '=';
(*num_decoded)++;
p++;
data[(*num_decoded)] = '=';
(*num_decoded)++;
p++;
diff --git
a/src/src/mime.h
b/src/src/mime.h
index 8fb9481581fb6887d66320331d27dd258e91b5bb..436c0eb80f14e7ba759129a965f4d4194c9112bb 100644
(file)
--- a/
src/src/mime.h
+++ b/
src/src/mime.h
@@
-1,4
+1,4
@@
-/* $Cambridge: exim/src/src/mime.h,v 1.1.2.
3 2004/11/30 15:18:58
tom Exp $ */
+/* $Cambridge: exim/src/src/mime.h,v 1.1.2.
4 2004/12/15 11:51:09
tom Exp $ */
/*************************************************
* Exim - an Internet mail transport agent *
/*************************************************
* Exim - an Internet mail transport agent *
@@
-56,6
+56,12
@@
static mime_parameter mime_parameter_list[] = {
static int mime_parameter_list_size = sizeof(mime_parameter_list)/sizeof(mime_parameter);
static int mime_parameter_list_size = sizeof(mime_parameter_list)/sizeof(mime_parameter);
+
+/* MIME Anomaly list */
+#define MIME_ANOMALY_BROKEN_BASE64 2, "Broken BASE64 encoding detected"
+#define MIME_ANOMALY_BROKEN_QP 1, "Broken Quoted-Printable encoding detected"
+
+
/* BASE64 decoder matrix */
static unsigned char mime_b64[256]={
/* 0 */ 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
/* BASE64 decoder matrix */
static unsigned char mime_b64[256]={
/* 0 */ 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
diff --git
a/src/src/spf.c
b/src/src/spf.c
index 7b5edb9b9867e4d259302bfae3e9309d6ef7c289..5521891e49655366f9d44e82da1eabce2c61bd53 100644
(file)
--- a/
src/src/spf.c
+++ b/
src/src/spf.c
@@
-1,4
+1,4
@@
-/* $Cambridge: exim/src/src/spf.c,v 1.1.2.
1 2004/12/10 09:24:38
tom Exp $ */
+/* $Cambridge: exim/src/src/spf.c,v 1.1.2.
2 2004/12/15 11:51:09
tom Exp $ */
/*************************************************
* Exim - an Internet mail transport agent *
/*************************************************
* Exim - an Internet mail transport agent *
@@
-13,7
+13,7
@@
#include "exim.h"
#ifdef EXPERIMENTAL_SPF
#include "exim.h"
#ifdef EXPERIMENTAL_SPF
-#include "spf.h"
+/* #include "spf.h" */
SPF_config_t spfcid = NULL;
SPF_dns_config_t spfdcid_resolv = NULL;
SPF_config_t spfcid = NULL;
SPF_dns_config_t spfdcid_resolv = NULL;