diff options
author | deraadt <> | 2024-07-12 07:15:28 +0000 |
---|---|---|
committer | deraadt <> | 2024-07-12 07:15:28 +0000 |
commit | 78396a0e25876766100f721572e3eab7f164d330 (patch) | |
tree | 16f1e66664d6f04e94406746b07cf8068b9fa752 /src | |
parent | b4a70af2e7b2138e1a2735a1cca240f83b85bdf6 (diff) | |
download | openbsd-78396a0e25876766100f721572e3eab7f164d330.tar.gz openbsd-78396a0e25876766100f721572e3eab7f164d330.tar.bz2 openbsd-78396a0e25876766100f721572e3eab7f164d330.zip |
use sigaction() to setup SIGARLM so we can set SA_RESTART, and
remove the re-arming in the handler. Better than using siginterrupt(),
and avoids the errno saving requirement in the handler also.
ok guenther millert
Diffstat (limited to 'src')
-rw-r--r-- | src/usr.bin/openssl/speed.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/src/usr.bin/openssl/speed.c b/src/usr.bin/openssl/speed.c index f1916efe1c..08d19c9795 100644 --- a/src/usr.bin/openssl/speed.c +++ b/src/usr.bin/openssl/speed.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: speed.c,v 1.37 2024/07/09 11:21:44 deraadt Exp $ */ | 1 | /* $OpenBSD: speed.c,v 1.38 2024/07/12 07:15:28 deraadt Exp $ */ |
2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
3 | * All rights reserved. | 3 | * All rights reserved. |
4 | * | 4 | * |
@@ -193,10 +193,6 @@ static void sig_done(int sig); | |||
193 | static void | 193 | static void |
194 | sig_done(int sig) | 194 | sig_done(int sig) |
195 | { | 195 | { |
196 | int save_errno = errno; | ||
197 | |||
198 | signal(SIGALRM, sig_done); | ||
199 | errno = save_errno; | ||
200 | run = 0; | 196 | run = 0; |
201 | } | 197 | } |
202 | 198 | ||
@@ -436,6 +432,7 @@ speed_main(int argc, char **argv) | |||
436 | int decrypt = 0; | 432 | int decrypt = 0; |
437 | int multi = 0; | 433 | int multi = 0; |
438 | const char *errstr = NULL; | 434 | const char *errstr = NULL; |
435 | struct sigaction sa; | ||
439 | 436 | ||
440 | if (pledge("stdio proc", NULL) == -1) { | 437 | if (pledge("stdio proc", NULL) == -1) { |
441 | perror("pledge"); | 438 | perror("pledge"); |
@@ -935,7 +932,12 @@ speed_main(int argc, char **argv) | |||
935 | memset(rsa_c, 0, sizeof(rsa_c)); | 932 | memset(rsa_c, 0, sizeof(rsa_c)); |
936 | #define COND(c) (run && count<0x7fffffff) | 933 | #define COND(c) (run && count<0x7fffffff) |
937 | #define COUNT(d) (count) | 934 | #define COUNT(d) (count) |
938 | signal(SIGALRM, sig_done); | 935 | |
936 | memset(&sa, 0, sizeof(sa)); | ||
937 | sigemptyset(&sa.sa_mask); | ||
938 | sa.sa_flags = SA_RESTART; | ||
939 | sa.sa_handler = sig_done; | ||
940 | sigaction(SIGALRM, &sa, NULL); | ||
939 | 941 | ||
940 | #ifndef OPENSSL_NO_MD4 | 942 | #ifndef OPENSSL_NO_MD4 |
941 | if (doit[D_MD4]) { | 943 | if (doit[D_MD4]) { |