From a8b1379ccbfbe7f1d7732147c4969bb92499555d Mon Sep 17 00:00:00 2001 From: Nicholas Marriott Date: Mon, 26 Oct 2009 21:38:18 +0000 Subject: Clear signal flags /before/ taking action and continue afterwards to reduce chance of dropping signals. Pointed out by deraadt@. --- server.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'server.c') diff --git a/server.c b/server.c index e1ec4eb8..78c5af94 100644 --- a/server.c +++ b/server.c @@ -328,15 +328,17 @@ server_main(int srv_fd) /* Handle child exit. */ if (sigchld) { - server_child_signal(); sigchld = 0; + server_child_signal(); + continue; } /* Recreate socket on SIGUSR1. */ if (sigusr1) { + sigusr1 = 0; close(srv_fd); srv_fd = server_create_socket(); - sigusr1 = 0; + continue; } /* Initialise pollfd array and add server socket. */ -- cgit