X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fsrc%2Fexim.c;h=5fca4352aa9bc775014d867ce12442abc587e19b;hb=4ab69ec7c73967c9ca101d1716fbfa9e24184cd8;hp=69d2edb8be566c93a7c453baafd65c9e53e98d71;hpb=40c90bca9f7e2952bd64faebceb53538f80805a7;p=user%2Fhenk%2Fcode%2Fexim.git diff --git a/src/src/exim.c b/src/src/exim.c index 69d2edb8b..5fca4352a 100644 --- a/src/src/exim.c +++ b/src/src/exim.c @@ -174,10 +174,8 @@ Returns: nothing void set_process_info(const char *format, ...) { -int len; +int len = sprintf(CS process_info, "%5d ", (int)getpid()); va_list ap; -sprintf(CS process_info, "%5d ", (int)getpid()); -len = Ustrlen(process_info); va_start(ap, format); if (!string_vformat(process_info + len, PROCESS_INFO_SIZE - len - 2, format, ap)) Ustrcpy(process_info + len, "**** string overflowed buffer ****"); @@ -1512,6 +1510,7 @@ BOOL list_config = FALSE; BOOL local_queue_only; BOOL more = TRUE; BOOL one_msg_action = FALSE; +BOOL opt_D_used = FALSE; BOOL queue_only_set = FALSE; BOOL receiving_message = TRUE; BOOL sender_ident_set = FALSE; @@ -1688,6 +1687,8 @@ big_buffer = store_malloc(big_buffer_size); descriptive text. */ set_process_info("initializing"); +readconf_features(); +readconf_options(); os_restarting_signal(SIGUSR1, usr1_handler); /* SIGHUP is used to get the daemon to reconfigure. It gets set as appropriate @@ -2416,6 +2417,7 @@ for (i = 1; i < argc; i++) uschar name[24]; uschar *s = argrest; + opt_D_used = TRUE; while (isspace(*s)) s++; if (*s < 'A' || *s > 'Z') @@ -3983,7 +3985,10 @@ if (timezone_string && strcmpic(timezone_string, US"UTC") == 0) else { uschar *envtz = US getenv("TZ"); - if (envtz ? !timezone_string || Ustrcmp(timezone_string, envtz) != 0 : timezone_string) + if (envtz + ? !timezone_string || Ustrcmp(timezone_string, envtz) != 0 + : timezone_string != NULL + ) { uschar **p = USS environ; uschar **new; @@ -4028,16 +4033,15 @@ Exim user", but it hasn't, because either the -D option set macros, or the root for -C or -D, the caller must either be root or be invoking a trusted configuration file (when deliver_drop_privilege is false). */ -if (removed_privilege && (!trusted_config || macros != NULL) && - real_uid == exim_uid) - { +if ( removed_privilege + && (!trusted_config || opt_D_used) + && real_uid == exim_uid) if (deliver_drop_privilege) really_exim = TRUE; /* let logging work normally */ else log_write(0, LOG_MAIN|LOG_PANIC, "exim user lost privilege for using %s option", trusted_config? "-D" : "-C"); - } /* Start up Perl interpreter if Perl support is configured and there is a perl_startup option, and the configuration or the command line specifies