git://git.exim.org
/
exim.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
d8ecc7b
)
Fix non-WITH_CONTENT_SCAN build (2)
author
Jeremy Harris
<jgh146exb@wizmail.org>
Wed, 31 Aug 2022 16:17:59 +0000
(17:17 +0100)
committer
Jeremy Harris
<jgh146exb@wizmail.org>
Wed, 31 Aug 2022 16:20:59 +0000
(17:20 +0100)
Broken-by: d8ecc7bf97
src/src/exim.c
patch
|
blob
|
history
src/src/functions.h
patch
|
blob
|
history
src/src/globals.h
patch
|
blob
|
history
src/src/regex.c
patch
|
blob
|
history
src/src/smtp_in.c
patch
|
blob
|
history
diff --git
a/src/src/exim.c
b/src/src/exim.c
index 82e8330670109ec9f494dc3b7d06af4ad52e3f92..f2a787e8aca0da2f1389a40aa5227625bf44e91c 100644
(file)
--- a/
src/src/exim.c
+++ b/
src/src/exim.c
@@
-1678,17
+1678,6
@@
else
}
}
-/* reset regex expansion variables */
-void
-regex_vars_clear(void)
-{
-regex_match_string = NULL;
-for (int i = 0; i < REGEX_VARS; i++) regex_vars[i] = NULL;
-}
-
-
-
-
/*************************************************
* Entry point and high-level code *
/*************************************************
* Entry point and high-level code *
@@
-6092,13
+6081,13
@@
MORELOOP:
dnslist_domain = dnslist_matched = NULL;
#ifdef WITH_CONTENT_SCAN
malware_name = NULL;
dnslist_domain = dnslist_matched = NULL;
#ifdef WITH_CONTENT_SCAN
malware_name = NULL;
+ regex_vars_clear();
#endif
callout_address = NULL;
sending_ip_address = NULL;
deliver_localpart_data = deliver_domain_data =
recipient_data = sender_data = NULL;
acl_var_m = NULL;
#endif
callout_address = NULL;
sending_ip_address = NULL;
deliver_localpart_data = deliver_domain_data =
recipient_data = sender_data = NULL;
acl_var_m = NULL;
- regex_vars_clear();
store_reset(reset_point);
}
store_reset(reset_point);
}
diff --git
a/src/src/functions.h
b/src/src/functions.h
index 345d7bce6749173f6a0635090bf10beb9ec81f9b..d5164547ae5505c69c3cd26a9328500bdf7c1b68 100644
(file)
--- a/
src/src/functions.h
+++ b/
src/src/functions.h
@@
-440,6
+440,7
@@
extern int_eximarith_t receive_statvfs(BOOL, int *);
extern void receive_swallow_smtp(void);
#ifdef WITH_CONTENT_SCAN
extern int regex(const uschar **, BOOL);
extern void receive_swallow_smtp(void);
#ifdef WITH_CONTENT_SCAN
extern int regex(const uschar **, BOOL);
+extern void regex_vars_clear(void);
#endif
extern void regex_at_daemon(const uschar *);
extern BOOL regex_match(const pcre2_code *, const uschar *, int, uschar **);
#endif
extern void regex_at_daemon(const uschar *);
extern BOOL regex_match(const pcre2_code *, const uschar *, int, uschar **);
@@
-447,7
+448,6
@@
extern BOOL regex_match_and_setup(const pcre2_code *, const uschar *, int, in
extern const pcre2_code *regex_compile(const uschar *, mcs_flags, uschar **,
pcre2_compile_context *);
extern const pcre2_code *regex_must_compile(const uschar *, mcs_flags, BOOL);
extern const pcre2_code *regex_compile(const uschar *, mcs_flags, uschar **,
pcre2_compile_context *);
extern const pcre2_code *regex_must_compile(const uschar *, mcs_flags, BOOL);
-extern void regex_vars_clear(void);
extern void retry_add_item(address_item *, uschar *, int);
extern BOOL retry_check_address(const uschar *, host_item *, uschar *, BOOL,
uschar **, uschar **);
extern void retry_add_item(address_item *, uschar *, int);
extern BOOL retry_check_address(const uschar *, host_item *, uschar *, BOOL,
uschar **, uschar **);
diff --git
a/src/src/globals.h
b/src/src/globals.h
index c40ae4bebee9c074f3f4e9dfdaec0f7691a226df..ae74147d470d7189ea2b6b4d97f4bdb144ccb75e 100644
(file)
--- a/
src/src/globals.h
+++ b/
src/src/globals.h
@@
-904,12
+904,12
@@
extern const pcre2_code *regex_EARLY_PIPE; /* For recognizing PIPE_CONNCT */
extern int regex_cachesize; /* number of entries */
extern const pcre2_code *regex_ismsgid; /* Compiled r.e. for message ID */
extern const pcre2_code *regex_smtp_code; /* For recognizing SMTP codes */
extern int regex_cachesize; /* number of entries */
extern const pcre2_code *regex_ismsgid; /* Compiled r.e. for message ID */
extern const pcre2_code *regex_smtp_code; /* For recognizing SMTP codes */
-extern const uschar *regex_vars[]; /* $regexN variables */
#ifdef WHITELIST_D_MACROS
extern const pcre2_code *regex_whitelisted_macro; /* For -D macro values */
#endif
#ifdef WITH_CONTENT_SCAN
extern uschar *regex_match_string; /* regex that matched a line (regex ACL condition) */
#ifdef WHITELIST_D_MACROS
extern const pcre2_code *regex_whitelisted_macro; /* For -D macro values */
#endif
#ifdef WITH_CONTENT_SCAN
extern uschar *regex_match_string; /* regex that matched a line (regex ACL condition) */
+extern const uschar *regex_vars[];
#endif
extern int remote_delivery_count; /* Number of remote addresses */
extern int remote_max_parallel; /* Maximum parallel delivery */
#endif
extern int remote_delivery_count; /* Number of remote addresses */
extern int remote_max_parallel; /* Maximum parallel delivery */
diff --git
a/src/src/regex.c
b/src/src/regex.c
index 3088f0066ae3559baa00190b1d14275a6daeae0e..25496f950db7d09debf46c15f902dda139965238 100644
(file)
--- a/
src/src/regex.c
+++ b/
src/src/regex.c
@@
-93,6
+93,16
@@
return FAIL;
}
}
+/* reset expansion variables */
+void
+regex_vars_clear(void)
+{
+regex_match_string = NULL;
+for (int i = 0; i < REGEX_VARS; i++) regex_vars[i] = NULL;
+}
+
+
+
int
regex(const uschar ** listptr, BOOL cacheable)
{
int
regex(const uschar ** listptr, BOOL cacheable)
{
diff --git
a/src/src/smtp_in.c
b/src/src/smtp_in.c
index a15280bdcfdea6bbf34e1a5d988733ff2fad2cb6..28e529bae25c7e23b367099562ae5ba35c1f5a69 100644
(file)
--- a/
src/src/smtp_in.c
+++ b/
src/src/smtp_in.c
@@
-2157,7
+2157,9
@@
prdr_requested = FALSE;
#ifdef SUPPORT_I18N
message_smtputf8 = FALSE;
#endif
#ifdef SUPPORT_I18N
message_smtputf8 = FALSE;
#endif
+#ifdef WITH_CONTENT_SCAN
regex_vars_clear();
regex_vars_clear();
+#endif
body_linecount = body_zerocount = 0;
lookup_value = NULL; /* Can be set by ACL */
body_linecount = body_zerocount = 0;
lookup_value = NULL; /* Can be set by ACL */