From the signal(2) man page:
The behavior of signal() varies across UNIX versions, and has also var‐
ied historically across different versions of Linux. Avoid its use:
use sigaction(2) instead.
Replaced signal() with sigaction() in builtin/verify-tag.c
Signed-off-by: Jeremiah Mahler <redacted>
---
builtin/verify-tag.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/builtin/verify-tag.c b/builtin/verify-tag.c
index 9cdf332..d5ccbad 100644
--- a/builtin/verify-tag.c
+++ b/builtin/verify-tag.c
@@ -73,6 +73,7 @@ int cmd_verify_tag(int argc, const char **argv, const char *prefix)
OPT__VERBOSE(&verbose, N_("print tag contents")),
OPT_END()
};
+ struct sigaction sa;
git_config(git_verify_tag_config, NULL);
@@ -83,7 +84,9 @@ int cmd_verify_tag(int argc, const char **argv, const char *prefix)
/* sometimes the program was terminated because this signal
* was received in the process of writing the gpg input: */
- signal(SIGPIPE, SIG_IGN);
+ memset(&sa, 0, sizeof(sa));
+ sa.sa_handler = SIG_IGN;
+ sigaction(SIGPIPE, &sa, NULL);
while (i < argc)
if (verify_tag(argv[i++], verbose))
had_error = 1;
--
2.0.0.8.g7bf6e1f.dirty