[pacman-dev] [PATCH] alpm: log errors for scriptlets terminated by a signal
Dave Reisner
d at falconindy.com
Tue Aug 20 16:16:18 EDT 2013
On Tue, Aug 20, 2013 at 02:39:22PM -0500, Dan McGee wrote:
> On Tue, Aug 20, 2013 at 2:03 PM, Dave Reisner <dreisner at archlinux.org> wrote:
>
> Fixes FS#36618.
>
> Signed-off-by: Dave Reisner <dreisner at archlinux.org>
> ---
> We *could* print the signal name here as well, but signal value-to-name can
> actually vary by architecture so it's not clear that it's something we
> necessarily want to get into....
>
>
> These would be documented in signal(7) on most platforms, and likely signal(3)
> on others, right? I doubt it makes sense to point there, but I do see strsignal
> () which appears to be reasonably portable:
>
> CONFORMING TO
> POSIX.1-2008. Present on Solaris and the BSDs.
>
Whoa. Had no idea this existed. This seems to return a human readable
string such as "Segmentation Fault" or "Aborted" rather than the signal
name, which I don't particularly think is useful.
Regardless of the output, the end result from anything hitting this code
path should be a bug report.
>
>
> lib/libalpm/util.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/lib/libalpm/util.c b/lib/libalpm/util.c
> index f1f760a..4b708ff 100644
> --- a/lib/libalpm/util.c
> +++ b/lib/libalpm/util.c
> @@ -599,6 +599,10 @@ int _alpm_run_chroot(alpm_handle_t *handle, const char
> *cmd, char *const argv[])
> _alpm_log(handle, ALPM_LOG_ERROR, _
> ("command failed to execute correctly\n"));
> retval = 1;
> }
> + } else if(WIFSIGNALED(status) != 0) {
> + _alpm_log(handle, ALPM_LOG_ERROR, _("command
> terminated by signal %d\n"),
> + WTERMSIG(status));
> + retval = 1;
> }
> }
>
> --
> 1.8.3.4
>
>
>
>
More information about the pacman-dev
mailing list