X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fsrc%2Fexim.c;h=a30e35bcab64fb038b26fae462c1d372084299be;hb=f0fe22cbc29ee4f887aa254f2590a9e72401e237;hp=68734e35c79b4e45192f72c581f4c6cfa5b22591;hpb=d85cdeb5e554b59bf4c43c54461409c15c6ee9c5;p=user%2Fhenk%2Fcode%2Fexim.git diff --git a/src/src/exim.c b/src/src/exim.c index 68734e35c..a30e35bca 100644 --- a/src/src/exim.c +++ b/src/src/exim.c @@ -901,7 +901,7 @@ fprintf(fp, "Support for:"); #ifndef DISABLE_OCSP fprintf(fp, " OCSP"); #endif -#ifdef SUPPORT_PIPE_CONNECT +#ifndef DISABLE_PIPE_CONNECT fprintf(fp, " PIPE_CONNECT"); #endif #ifndef DISABLE_PRDR @@ -929,7 +929,7 @@ fprintf(fp, "Support for:"); #ifdef EXPERIMENTAL_QUEUEFILE fprintf(fp, " Experimental_QUEUEFILE"); #endif -#ifdef EXPERIMENTAL_SRS +#if defined(EXPERIMENTAL_SRS) || defined(EXPERIMENTAL_SRS_NATIVE) fprintf(fp, " Experimental_SRS"); #endif #ifdef EXPERIMENTAL_ARC @@ -4678,19 +4678,21 @@ if (f.daemon_listen || f.inetd_wait_mode || queue_interval > 0) "mua_wrapper is set"); } +# ifndef DISABLE_TLS /* This also checks that the library linkage is working and we can call routines in it, so call even if tls_require_ciphers is unset */ { -#ifdef MEASURE_TIMING +# ifdef MEASURE_TIMING struct timeval t0, diff; (void)gettimeofday(&t0, NULL); -#endif +# endif if (!tls_dropprivs_validate_require_cipher(FALSE)) exit(1); -#ifdef MEASURE_TIMING +# ifdef MEASURE_TIMING report_time_since(&t0, US"validate_ciphers (delta)"); -#endif +# endif } +#endif daemon_go(); } @@ -4807,8 +4809,9 @@ if (verify_address_mode || f.address_test_mode) { while (recipients_arg < argc) { - uschar *s = argv[recipients_arg++]; - while (*s != 0) + /* Supplied addresses are tainted since they come from a user */ + uschar * s = string_copy_taint(argv[recipients_arg++], TRUE); + while (*s) { BOOL finished = FALSE; uschar *ss = parse_find_address_end(s, FALSE); @@ -4816,16 +4819,16 @@ if (verify_address_mode || f.address_test_mode) test_address(s, flags, &exit_value); s = ss; if (!finished) - while (*(++s) != 0 && (*s == ',' || isspace(*s))); + while (*++s == ',' || isspace(*s)) ; } } } else for (;;) { - uschar *s = get_stdinput(NULL, NULL); - if (s == NULL) break; - test_address(s, flags, &exit_value); + uschar * s = get_stdinput(NULL, NULL); + if (!s) break; + test_address(string_copy_taint(s, TRUE), flags, &exit_value); } route_tidyup(); @@ -5319,13 +5322,13 @@ while (more) raw_sender = string_copy(sender_address); - /* Loop for each argument */ + /* Loop for each argument (supplied by user hence tainted) */ for (int i = 0; i < count; i++) { int start, end, domain; - uschar *errmess; - uschar *s = list[i]; + uschar * errmess; + uschar * s = string_copy_taint(list[i], TRUE); /* Loop for each comma-separated address */