DNS: explicit alloc/free of workspace
[exim.git] / src / src / child.c
index 3aa6962212e5bf6735d0da901c174d3a74bf8e5e..948e0d66928dfb26ed96982c94815ef5950684dc 100644 (file)
@@ -3,6 +3,7 @@
 *************************************************/
 
 /* Copyright (c) University of Cambridge 1995 - 2015 */
+/* Copyright (c) The Exim Maintainers 2020 */
 /* See the file NOTICE for conditions of use and distribution. */
 
 
@@ -26,7 +27,7 @@ Arguments:
 Returns:       nothing
 */
 
-static void
+void
 force_fd(int oldfd, int newfd)
 {
 if (oldfd == newfd) return;
@@ -109,6 +110,11 @@ if (!minimal)
     if (debug_selector != 0)
       argv[n++] = string_sprintf("-d=0x%x", debug_selector);
     }
+  DEBUG(D_any)
+    {
+    argv[n++] = US"-MCd";
+    argv[n++] = US process_purpose;
+    }
   if (!f.testsuite_delays) argv[n++] = US"-odd";
   if (f.dont_deliver) argv[n++] = US"-N";
   if (f.queue_smtp) argv[n++] = US"-odqs";
@@ -140,7 +146,7 @@ if (acount > 0)
 argv[n] = NULL;
 if (exec_type == CEE_RETURN_ARGV)
   {
-  if (pcount != NULL) *pcount = n;
+  if (pcount) *pcount = n;
   return argv;
   }
 
@@ -263,6 +269,8 @@ if (pid == 0)
     }
   }
 
+testharness_pause_ms(100); /* let child work even longer, for exec */
+
 /* Parent process. Save fork() errno and close the reading end of the stdin
 pipe. */