]> granicus.if.org Git - apache-authnz-external/commitdiff
Fix launch of external process on Windows
authorMicah Andersen <micah@bimi.org>
Wed, 16 May 2018 16:28:13 +0000 (12:28 -0400)
committerMicah Andersen <micah@bimi.org>
Wed, 16 May 2018 16:28:13 +0000 (12:28 -0400)
- SystemRoot environment variable is needed for various random things
- standard Windows file open dialog
- ping command's DNS resolution
- php mysqli remote database access
- etc.

mod_authnz_external/mod_authnz_external.c

index f03079f2a69daa25af56bd387cd3226c37175cd3..a602d7a12372f77f567b4ff9619f01f09925f880 100644 (file)
@@ -409,7 +409,7 @@ static int exec_external(const char *extpath, const char *extmethod,
     apr_procattr_t *procattr;
     apr_proc_t proc;
     apr_status_t rc= APR_SUCCESS;
-    char *child_env[12];
+    char *child_env[13];
     char *child_arg[MAX_ARG+2];
     const char *t;
     int i, status= -4;
@@ -471,6 +471,10 @@ static int exec_external(const char *extpath, const char *extmethod,
        if ((cookie= apr_table_get(r->headers_in, "Cookie")) != NULL)
            child_env[i++]= apr_pstrcat(p, ENV_COOKIE"=", cookie, NULL);
 #endif
+               
+#ifdef _WINDOWS
+    child_env[i++]= apr_pstrcat(r->pool, "SystemRoot=", getenv("SystemRoot"), NULL);
+#endif
        /* NOTE:  If you add environment variables,
         *   remember to increase the size of the child_env[] array */