summaryrefslogtreecommitdiff
path: root/entropy.c
diff options
context:
space:
mode:
authordtucker@openbsd.org <dtucker@openbsd.org>2020-01-23 07:10:22 +0000
committerDarren Tucker <dtucker@dtucker.net>2020-01-23 18:51:25 +1100
commit3bf2a6ac791d64046a537335a0f1d5e43579c5ad (patch)
tree76fcc0f1be306541c074be4aed3aca66023f0962 /entropy.c
parente027c044c796f3a01081a91bee55741204283f28 (diff)
upstream: Replace all calls to signal(2) with a wrapper around
sigaction(2). This wrapper blocks all other signals during the handler preventing races between handlers, and sets SA_RESTART which should reduce the potential for short read/write operations. OpenBSD-Commit-ID: 5e047663fd77a40d7b07bdabe68529df51fd2519
Diffstat (limited to 'entropy.c')
-rw-r--r--entropy.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/entropy.c b/entropy.c
index 5de68016..2eebadf4 100644
--- a/entropy.c
+++ b/entropy.c
@@ -110,7 +110,7 @@ get_random_bytes_prngd(unsigned char *buf, int len,
strlen(socket_path) + 1;
}
- old_sigpipe = signal(SIGPIPE, SIG_IGN);
+ old_sigpipe = ssh_signal(SIGPIPE, SIG_IGN);
errors = 0;
rval = -1;
@@ -160,7 +160,7 @@ reopen:
rval = 0;
done:
- signal(SIGPIPE, old_sigpipe);
+ ssh_signal(SIGPIPE, old_sigpipe);
if (fd != -1)
close(fd);
return rval;