BUG/MINOR: mworker: do not export HAPROXY_MWORKER_REEXEC across programs

This undocumented variable is only for internal use, and its sole
presence affects the process' behavior, as shown in bug #1324. It must
not be exported to workers, external checks, nor programs. Let's unset
it before forking programs and workers.

This should be backported as far as 1.8. The worker code might differ
a bit before 2.5 due to the recent removal of multi-process support.

(cherry picked from commit 3c032f2d4d3ba508d508ae70603ccac6d5cf9d4a)
Signed-off-by: Christopher Faulet <cfaulet@haproxy.com>
diff --git a/src/haproxy.c b/src/haproxy.c
index 9d21fd5..581342c 100644
--- a/src/haproxy.c
+++ b/src/haproxy.c
@@ -3161,6 +3161,8 @@
 					exit(1); /* there has been an error */
 				}
 				else if (ret == 0) { /* child breaks here */
+                                        /* This one must not be exported, it's internal! */
+                                        unsetenv("HAPROXY_MWORKER_REEXEC");
 					ha_random_jump96(relative_pid);
 					break;
 				}
diff --git a/src/mworker-prog.c b/src/mworker-prog.c
index 8d9ce3a..abaf46b 100644
--- a/src/mworker-prog.c
+++ b/src/mworker-prog.c
@@ -110,6 +110,8 @@
 					exit(1);
 				}
 
+				/* This one must not be exported, it's internal! */
+				unsetenv("HAPROXY_MWORKER_REEXEC");
 				execvp(child->command[0], child->command);
 
 				ha_alert("Cannot execute %s: %s\n", child->command[0], strerror(errno));