X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;f=tfc_skein.c;h=7886c2bc4c4002ee57a41c3cf85cb4f2560327c0;hb=7274f5687aeae3d14e686cff6fb8626e644b09c9;hp=e2c31f9a2e7d69c35b7f239b2a5057650fed5775;hpb=e16562d4f4180c1364181c92d6d8f285f322f12c;p=tfcrypt.git diff --git a/tfc_skein.c b/tfc_skein.c index e2c31f9..7886c2b 100644 --- a/tfc_skein.c +++ b/tfc_skein.c @@ -29,6 +29,12 @@ #include "tfcrypt.h" #include "tfcore.h" +static void exit_sigterm_skein(int signal) +{ + if (xexit_no_nl == YES) xexit_no_nl = NO; + exit_sigterm(signal); +} + void skein(void *hash, size_t bits, const void *key, const void *data, size_t szdata) { struct skein sk; @@ -179,7 +185,7 @@ _dothat: sigaction(SIGQUIT, &sigact, NULL); sigact.sa_handler = change_status_timer; sigaction(SIGUSR2, &sigact, NULL); - sigact.sa_handler = exit_sigterm; + sigact.sa_handler = exit_sigterm_skein; sigaction(SIGINT, &sigact, NULL); sigaction(SIGTERM, &sigact, NULL); sigact.sa_handler = handle_sigtstp; @@ -219,7 +225,7 @@ _dothat: s = strchr(shash, ' '); if (s && s[1] == ' ') *s = 0; - fd = open(fname, O_RDONLY | O_LARGEFILE); + fd = xxopen(YES, fname, O_RDONLY | O_LARGEFILE); if (fd == -1) { xerror(YES, NO, YES, "%s", fname); exitcode = 1; @@ -271,7 +277,7 @@ _dothat: for (x = 0; fargv[x] && xx; x++) { if (!strcmp(fargv[x], "-")) fd = 0; - else fd = open(fargv[x], O_RDONLY | O_LARGEFILE); + else fd = xxopen(YES, fargv[x], O_RDONLY | O_LARGEFILE); if (fd == -1) { xerror(YES, NO, YES, "%s", fargv[x]); exitcode = 1;