summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDarren Tucker <dtucker@zip.com.au>2003-09-22 21:13:59 +1000
committerDarren Tucker <dtucker@zip.com.au>2003-09-22 21:13:59 +1000
commitaaa56cb80473feda33ef44643cc2a95df9d67984 (patch)
tree39804a87ddd1727b8b2c1636e868c34d17f51dca
parent3dbff2a93b0f326cd4891654c3553f901df8ede7 (diff)
- markus@cvs.openbsd.org 2003/09/19 11:33:09
[packet.c sshd.c] do not call packet_close on fatal; ok deraadt
-rw-r--r--ChangeLog5
-rw-r--r--packet.c5
-rw-r--r--sshd.c10
3 files changed, 6 insertions, 14 deletions
diff --git a/ChangeLog b/ChangeLog
index ea27f1747..340be6e2c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -61,6 +61,9 @@
61 - markus@cvs.openbsd.org 2003/09/19 11:31:33 61 - markus@cvs.openbsd.org 2003/09/19 11:31:33
62 [channels.c] 62 [channels.c]
63 do not call channel_free_all on fatal; ok deraadt 63 do not call channel_free_all on fatal; ok deraadt
64 - markus@cvs.openbsd.org 2003/09/19 11:33:09
65 [packet.c sshd.c]
66 do not call packet_close on fatal; ok deraadt
64 67
6520030919 6820030919
66 - (djm) Bug #683: Remove reference to --with-ipv4-default from INSTALL; 69 - (djm) Bug #683: Remove reference to --with-ipv4-default from INSTALL;
@@ -1197,4 +1200,4 @@
1197 - Fix sshd BindAddress and -b options for systems using fake-getaddrinfo. 1200 - Fix sshd BindAddress and -b options for systems using fake-getaddrinfo.
1198 Report from murple@murple.net, diagnosis from dtucker@zip.com.au 1201 Report from murple@murple.net, diagnosis from dtucker@zip.com.au
1199 1202
1200$Id: ChangeLog,v 1.3033 2003/09/22 11:12:56 dtucker Exp $ 1203$Id: ChangeLog,v 1.3034 2003/09/22 11:13:59 dtucker Exp $
diff --git a/packet.c b/packet.c
index 02b629f30..6e7e574ab 100644
--- a/packet.c
+++ b/packet.c
@@ -37,7 +37,7 @@
37 */ 37 */
38 38
39#include "includes.h" 39#include "includes.h"
40RCSID("$OpenBSD: packet.c,v 1.110 2003/09/19 09:02:02 markus Exp $"); 40RCSID("$OpenBSD: packet.c,v 1.111 2003/09/19 11:33:09 markus Exp $");
41 41
42#include "openbsd-compat/sys-queue.h" 42#include "openbsd-compat/sys-queue.h"
43 43
@@ -165,8 +165,6 @@ packet_set_connection(int fd_in, int fd_out)
165 buffer_init(&incoming_packet); 165 buffer_init(&incoming_packet);
166 TAILQ_INIT(&outgoing); 166 TAILQ_INIT(&outgoing);
167 } 167 }
168 /* Kludge: arrange the close function to be called from fatal(). */
169 fatal_add_cleanup((void (*) (void *)) packet_close, NULL);
170} 168}
171 169
172/* Returns 1 if remote host is connected via socket, 0 if not. */ 170/* Returns 1 if remote host is connected via socket, 0 if not. */
@@ -1338,7 +1336,6 @@ packet_disconnect(const char *fmt,...)
1338 1336
1339 /* Close the connection. */ 1337 /* Close the connection. */
1340 packet_close(); 1338 packet_close();
1341
1342 fatal_cleanup(); 1339 fatal_cleanup();
1343} 1340}
1344 1341
diff --git a/sshd.c b/sshd.c
index 47df9caf1..4b3ff0da3 100644
--- a/sshd.c
+++ b/sshd.c
@@ -42,7 +42,7 @@
42 */ 42 */
43 43
44#include "includes.h" 44#include "includes.h"
45RCSID("$OpenBSD: sshd.c,v 1.276 2003/08/28 12:54:34 markus Exp $"); 45RCSID("$OpenBSD: sshd.c,v 1.277 2003/09/19 11:33:09 markus Exp $");
46 46
47#include <openssl/dh.h> 47#include <openssl/dh.h>
48#include <openssl/bn.h> 48#include <openssl/bn.h>
@@ -587,8 +587,6 @@ privsep_preauth(void)
587 if (pid == -1) { 587 if (pid == -1) {
588 fatal("fork of unprivileged child failed"); 588 fatal("fork of unprivileged child failed");
589 } else if (pid != 0) { 589 } else if (pid != 0) {
590 fatal_remove_cleanup((void (*) (void *)) packet_close, NULL);
591
592 debug2("Network child is on pid %ld", (long)pid); 590 debug2("Network child is on pid %ld", (long)pid);
593 591
594 close(pmonitor->m_recvfd); 592 close(pmonitor->m_recvfd);
@@ -602,10 +600,6 @@ privsep_preauth(void)
602 while (waitpid(pid, &status, 0) < 0) 600 while (waitpid(pid, &status, 0) < 0)
603 if (errno != EINTR) 601 if (errno != EINTR)
604 break; 602 break;
605
606 /* Reinstall, since the child has finished */
607 fatal_add_cleanup((void (*) (void *)) packet_close, NULL);
608
609 return (authctxt); 603 return (authctxt);
610 } else { 604 } else {
611 /* child */ 605 /* child */
@@ -653,8 +647,6 @@ privsep_postauth(Authctxt *authctxt)
653 if (pmonitor->m_pid == -1) 647 if (pmonitor->m_pid == -1)
654 fatal("fork of unprivileged child failed"); 648 fatal("fork of unprivileged child failed");
655 else if (pmonitor->m_pid != 0) { 649 else if (pmonitor->m_pid != 0) {
656 fatal_remove_cleanup((void (*) (void *)) packet_close, NULL);
657
658 debug2("User child is on pid %ld", (long)pmonitor->m_pid); 650 debug2("User child is on pid %ld", (long)pmonitor->m_pid);
659 close(pmonitor->m_recvfd); 651 close(pmonitor->m_recvfd);
660 monitor_child_postauth(pmonitor); 652 monitor_child_postauth(pmonitor);