|  | @@ -3276,9 +3276,9 @@ spawn_process(struct mg_connection *conn,
 | 
	
		
			
				|  |  |                const char *prog,
 | 
	
		
			
				|  |  |                char *envblk,
 | 
	
		
			
				|  |  |                char *envp[],
 | 
	
		
			
				|  |  | -              int fdin,
 | 
	
		
			
				|  |  | -              int fdout,
 | 
	
		
			
				|  |  | -              int fderr,
 | 
	
		
			
				|  |  | +              int fdin[2],
 | 
	
		
			
				|  |  | +              int fdout[2],
 | 
	
		
			
				|  |  | +              int fderr[2],
 | 
	
		
			
				|  |  |                const char *dir)
 | 
	
		
			
				|  |  |  {
 | 
	
		
			
				|  |  |  	HANDLE me;
 | 
	
	
		
			
				|  | @@ -3299,21 +3299,21 @@ spawn_process(struct mg_connection *conn,
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	me = GetCurrentProcess();
 | 
	
		
			
				|  |  |  	DuplicateHandle(me,
 | 
	
		
			
				|  |  | -	                (HANDLE)_get_osfhandle(fdin),
 | 
	
		
			
				|  |  | +	                (HANDLE)_get_osfhandle(fdin[0]),
 | 
	
		
			
				|  |  |  	                me,
 | 
	
		
			
				|  |  |  	                &si.hStdInput,
 | 
	
		
			
				|  |  |  	                0,
 | 
	
		
			
				|  |  |  	                TRUE,
 | 
	
		
			
				|  |  |  	                DUPLICATE_SAME_ACCESS);
 | 
	
		
			
				|  |  |  	DuplicateHandle(me,
 | 
	
		
			
				|  |  | -	                (HANDLE)_get_osfhandle(fdout),
 | 
	
		
			
				|  |  | +	                (HANDLE)_get_osfhandle(fdout[1]),
 | 
	
		
			
				|  |  |  	                me,
 | 
	
		
			
				|  |  |  	                &si.hStdOutput,
 | 
	
		
			
				|  |  |  	                0,
 | 
	
		
			
				|  |  |  	                TRUE,
 | 
	
		
			
				|  |  |  	                DUPLICATE_SAME_ACCESS);
 | 
	
		
			
				|  |  |  	DuplicateHandle(me,
 | 
	
		
			
				|  |  | -	                (HANDLE)_get_osfhandle(fderr),
 | 
	
		
			
				|  |  | +	                (HANDLE)_get_osfhandle(fderr[1]),
 | 
	
		
			
				|  |  |  	                me,
 | 
	
		
			
				|  |  |  	                &si.hStdError,
 | 
	
		
			
				|  |  |  	                0,
 | 
	
	
		
			
				|  | @@ -3569,9 +3569,9 @@ spawn_process(struct mg_connection *conn,
 | 
	
		
			
				|  |  |  			/* Keep stderr and stdout in two different pipes.
 | 
	
		
			
				|  |  |  			 * Stdout will be sent back to the client,
 | 
	
		
			
				|  |  |  			 * stderr should go into a server error log. */
 | 
	
		
			
				|  |  | -			(void)close(fdin);
 | 
	
		
			
				|  |  | -			(void)close(fdout);
 | 
	
		
			
				|  |  | -			(void)close(fderr);
 | 
	
		
			
				|  |  | +			(void)close(fdin[0]);
 | 
	
		
			
				|  |  | +			(void)close(fdout[1]);
 | 
	
		
			
				|  |  | +			(void)close(fderr[1]);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  			/* Close write end fdin and read end fdout and fderr */
 | 
	
		
			
				|  |  |  			(void)close(fdin[1]);
 |