$OpenBSD: patch-src_runtime_run-program_c,v 1.1 2018/03/08 15:17:39 sthen Exp $

Work around a problem where non-PIC code ends up using a different
copy of environ than libc.

Index: src/runtime/run-program.c
--- src/runtime/run-program.c.orig
+++ src/runtime/run-program.c
@@ -200,14 +200,18 @@ int spawn(char *program, char *argv[], int sin, int so
     if (pwd && chdir(pwd) < 0) {
        failure_code = 3;
     } else {
+        /* Exec the program. */
         if (envp) {
-            environ = envp;
+            if (search)
+                execvpe(program, argv, envp);
+            else
+                execve(program, argv, envp);
+        } else {
+            if (search)
+                execvp(program, argv);
+            else
+                execv(program, argv);
         }
-        /* Exec the program. */
-        if (search)
-            execvp(program, argv);
-        else
-            execv(program, argv);
     }
 
     /* When exec or chdir fails and channel is available, send the errno value. */
