From: Dan Nicholson Date: Tue, 27 Feb 2024 15:41:46 +0000 (-0700) Subject: main: Ignore SIGPIPE when printing version X-Git-Tag: archive/raspbian/2024.8-1+rpi1^2~7^2~3^2~7^2 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=422a2887d7edca2103c1d068518269accb198ebb;p=ostree.git main: Ignore SIGPIPE when printing version In order to do a runtime feature check, `ostree --version` can be piped to `grep` or similar. However, if the read end of the pipe doesn't read all of the output, `ostree` will receive `SIGPIPE` when trying to write output. Ignore it so that `ostree` still exits successfully in that case. --- diff --git a/src/ostree/ot-main.c b/src/ostree/ot-main.c index d63cbd45..fa4eb53f 100644 --- a/src/ostree/ot-main.c +++ b/src/ostree/ot-main.c @@ -24,6 +24,7 @@ #include #include +#include #include #include #include @@ -510,6 +511,11 @@ ostree_option_context_parse (GOptionContext *context, const GOptionEntry *main_e if (opt_version) { + /* Ignore SIGPIPE so that piping the output to grep or similar + * doesn't cause the process to fail. */ + if (signal (SIGPIPE, SIG_IGN) == SIG_ERR) + return glnx_throw_errno_prefix (error, "Ignoring SIGPIPE"); + /* This should now be YAML, like `docker version`, so it's both nice to read * possible to parse */ g_auto (GStrv) features = g_strsplit (OSTREE_FEATURES, " ", -1);