Fix HAVE_LOCAL_SCAN build. Bug 2457
authorJeremy Harris <jgh146exb@wizmail.org>
Sat, 19 Oct 2019 18:55:39 +0000 (19:55 +0100)
committerJeremy Harris <jgh146exb@wizmail.org>
Sat, 19 Oct 2019 22:06:14 +0000 (23:06 +0100)
Broken-by: f3ebb786e4
(cherry picked from commits d48326c00b1352e600b8)

src/src/local_scan.h
src/src/string.c
test/runtest

index 235812adafd15c2828c3bf8a12b3c680516f8a9b..fb878591e499abaf625532d503dc0fe84c85e85f 100644 (file)
@@ -199,10 +199,12 @@ we can use an inlined implementation in the compiles of the main Exim files,
 with the original name. */
 
 # define string_copy(s) string_copy_function(s)
-# define string_copyn(s, n) string_copyn_function(s, n)
+# define string_copyn(s, n) string_copyn_function((s), (n))
+# define string_copy_taint(s, t) string_copy_taint_function((s), (t))
 
 extern uschar * string_copy_function(const uschar *);
 extern uschar * string_copyn_function(const uschar *);
+extern uschar * string_copy_taint_function(const uschar *);
 #endif
 
 /* End of local_scan.h */
index a954396512723624ff777e457789e84f9dfd1641..ced1ad8c78bfe71236b67242708ab82619fd799c 100644 (file)
@@ -411,7 +411,7 @@ return ss;
 
 
 
-#ifdef HAVE_LOCAL_SCAN
+#if defined(HAVE_LOCAL_SCAN) && !defined(MACRO_PREDEF) && !defined(COMPILE_UTILITY)
 /*************************************************
 *            Copy and save string                *
 *************************************************/
@@ -432,7 +432,7 @@ As above, but explicitly specifying the result taint status
 */
 
 uschar *
-string_copy_taint(const uschar * s, BOOL tainted)
+string_copy_taint_function(const uschar * s, BOOL tainted)
 {
 int len = Ustrlen(s) + 1;
 uschar *ss = store_get(len, tainted);
index 49ff84535c30f49cd4a31b78e8f1a087061279db..c78cabf4bd2fdd4f8d79dfdde1bdce64d73990b2 100755 (executable)
@@ -1280,6 +1280,10 @@ RESET_AFTER_EXTRA_LINE_READ:
     # TLS resumption is not always supported by the build
     next if /in tls_resumption_hosts\?/;
 
+    # Most builds are without HAVE_LOCAL_SCAN
+    next if /^calling local_scan(); timeout=300$/;
+    next if /^local_scan() returned 0 NULL$/;
+
     # Platform differences in errno strings
     s/  SMTP\(Operation timed out\)<</  SMTP(Connection timed out)<</;