Taint: fix ACL "spam" condition, to permit tainted name arguments.
[users/heiko/exim.git] / src / exim_monitor / em_globals.c
index ae38e9f8a81cf34394f724c58aa45c814ecb18dd..925e88e053133bf52966502eeda64a8458e059a4 100644 (file)
@@ -1,10 +1,8 @@
-/* $Cambridge: exim/src/exim_monitor/em_globals.c,v 1.1 2004/10/07 10:39:01 ph10 Exp $ */
-
 /*************************************************
 *                Exim Monitor                    *
 *************************************************/
 
 /*************************************************
 *                Exim Monitor                    *
 *************************************************/
 
-/* Copyright (c) University of Cambridge 1995 - 2004 */
+/* Copyright (c) University of Cambridge 1995 - 2018 */
 /* See the file NOTICE for conditions of use and distribution. */
 
 
 /* See the file NOTICE for conditions of use and distribution. */
 
 
@@ -44,10 +42,15 @@ 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"
-                       "\0<---------------Space to patch exim_path->";
+                        "\0<---------------Space to patch exim_path->";
 
 int     eximon_initialized = FALSE;
 
 
 int     eximon_initialized = FALSE;
 
@@ -112,9 +115,8 @@ that fires up the monitor fishes the value out by using -bP anyway. */
 #define SPOOL_DIRECTORY ""
 #endif
 
 #define SPOOL_DIRECTORY ""
 #endif
 
-
-uschar *acl_var[ACL_C_MAX+ACL_M_MAX];
-
+tree_node *acl_var_c           = NULL;
+tree_node *acl_var_m           = NULL;
 uschar *active_hostname        = NULL;
 BOOL    allow_unqualified_recipient = FALSE;
 BOOL    allow_unqualified_sender = FALSE;
 uschar *active_hostname        = NULL;
 BOOL    allow_unqualified_recipient = FALSE;
 BOOL    allow_unqualified_sender = FALSE;
@@ -128,13 +130,36 @@ int     body_zerocount         = 0;
 
 BOOL    deliver_firsttime      = FALSE;
 BOOL    deliver_freeze         = FALSE;
 
 BOOL    deliver_firsttime      = FALSE;
 BOOL    deliver_freeze         = FALSE;
-int     deliver_frozen_at      = 0;
+time_t  deliver_frozen_at      = 0;
 BOOL    deliver_manual_thaw    = FALSE;
 BOOL    deliver_manual_thaw    = FALSE;
+
+#ifndef DISABLE_DKIM
+uschar *dkim_cur_signer          = NULL;
+uschar *dkim_signers             = NULL;
+uschar *dkim_signing_domain      = NULL;
+uschar *dkim_signing_selector    = NULL;
+uschar *dkim_verify_signers      = US"$dkim_signers";
+unsigned dkim_collect_input      = 0;
+BOOL    dkim_disable_verify      = FALSE;
+#endif
+
 BOOL    dont_deliver           = FALSE;
 
 BOOL    dont_deliver           = FALSE;
 
+int     dsn_ret                = 0;
+uschar *dsn_envid              = NULL;
+
+struct global_flags f = {
+ .sender_local         = FALSE,
+};
+
+#ifdef WITH_CONTENT_SCAN
+int     fake_response          = OK;
+#endif
+
 header_line *header_last       = NULL;
 header_line *header_list       = NULL;
 
 header_line *header_last       = NULL;
 header_line *header_list       = NULL;
 
+BOOL    host_lookup_deferred   = FALSE;
 BOOL    host_lookup_failed     = FALSE;
 uschar *interface_address      = NULL;
 int     interface_port         = 0;
 BOOL    host_lookup_failed     = FALSE;
 uschar *interface_address      = NULL;
 int     interface_port         = 0;
@@ -142,6 +167,15 @@ int     interface_port         = 0;
 BOOL    local_error_message    = FALSE;
 uschar *local_scan_data        = NULL;
 BOOL    log_timezone           = FALSE;
 BOOL    local_error_message    = FALSE;
 uschar *local_scan_data        = NULL;
 BOOL    log_timezone           = FALSE;
+
+#ifdef WITH_CONTENT_SCAN
+uschar *spam_bar               = NULL;
+uschar *spam_report            = NULL;
+uschar *spam_score             = NULL;
+uschar *spam_score_int         = NULL;
+#endif
+
+int     max_received_linelength= 0;
 int     message_age            = 0;
 uschar *message_id;
 uschar *message_id_external;
 int     message_age            = 0;
 uschar *message_id;
 uschar *message_id_external;
@@ -157,13 +191,15 @@ uid_t   originator_uid;
 
 uschar *primary_hostname       = NULL;
 
 
 uschar *primary_hostname       = NULL;
 
+uschar *queue_name             = US"";
+
 int     received_count         = 0;
 uschar *received_protocol      = NULL;
 int     received_count         = 0;
 uschar *received_protocol      = NULL;
-int     received_time          = 0;
+struct timeval received_time   = { 0, 0 };
 int     recipients_count       = 0;
 recipient_item *recipients_list = NULL;
 int     recipients_list_max    = 0;
 int     recipients_count       = 0;
 recipient_item *recipients_list = NULL;
 int     recipients_list_max    = 0;
-int     running_in_test_harness=FALSE;
+BOOL    running_in_test_harness=FALSE;
 
 uschar *sender_address         = NULL;
 uschar *sender_fullhost        = NULL;
 
 uschar *sender_address         = NULL;
 uschar *sender_fullhost        = NULL;
@@ -173,17 +209,20 @@ uschar *sender_host_authenticated = NULL;
 uschar *sender_host_name       = NULL;
 int     sender_host_port       = 0;
 uschar *sender_ident           = NULL;
 uschar *sender_host_name       = NULL;
 int     sender_host_port       = 0;
 uschar *sender_ident           = NULL;
-BOOL    sender_local           = FALSE;
 BOOL    sender_set_untrusted   = FALSE;
 BOOL    sender_set_untrusted   = FALSE;
+uschar *smtp_active_hostname   = NULL;
 
 BOOL    split_spool_directory  = FALSE;
 uschar *spool_directory        = US SPOOL_DIRECTORY;
 int     string_datestamp_offset=-1;
 
 BOOL    split_spool_directory  = FALSE;
 uschar *spool_directory        = US SPOOL_DIRECTORY;
 int     string_datestamp_offset=-1;
+int     string_datestamp_length= 0;
+int     string_datestamp_type  = -1;
 
 BOOL    timestamps_utc         = FALSE;
 
 BOOL    timestamps_utc         = FALSE;
-BOOL    tls_certificate_verified = FALSE;
-uschar *tls_cipher             = NULL;
-uschar *tls_peerdn             = NULL;
+tls_support tls_in = {
+ .active = { .sock = -1 }
+ /* remainder zero/null/false */
+};
 
 tree_node *tree_duplicates     = NULL;
 tree_node *tree_nonrecipients  = NULL;
 
 tree_node *tree_duplicates     = NULL;
 tree_node *tree_nonrecipients  = NULL;