summaryrefslogtreecommitdiff
blob: e259bbf279775f25f0c6f81ada569f9a97a72336 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
diff -ur qmail-1.03.orig/qmail-smtpd.c qmail-1.03/qmail-smtpd.c
--- qmail-1.03.orig/qmail-smtpd.c	2003-08-11 20:37:16.000000000 -0700
+++ qmail-1.03/qmail-smtpd.c	2003-08-11 20:39:52.000000000 -0700
@@ -519,14 +519,18 @@
   if (!stralloc_0(&resp)) die_nomem();
 
   if (fd_copy(2,1) == -1) return err_pipe();
-  close(3);
+  //close(3);
   if (pipe(pi) == -1) return err_pipe();
-  if (pi[0] != 3) return err_pipe();
+  //if (pi[0] != 3) return err_pipe();
   switch(child = fork()) {
     case -1:
       return err_fork();
     case 0:
       close(pi[1]);
+      if (pi[0] != 3) {
+        close(3);
+	if (0 > dup2(pi[0],3)) _exit(1);
+      }
       sig_pipedefault();
       execvp(*childargs, childargs);
       _exit(1);