On 9/30/19 4:27 PM, Eric Blake wrote:
On 9/30/19 11:32 AM, Richard W.M. Jones wrote:
> perror is not fork-safe and so could deadlock. Instead open code a
> fork-safe version of perror. While this fixes the current behaviour,
> in the long term we'd like to capture the error message into the usual
> error mechanism, so this is not the full and final fix for this issue.
>
> Also this fixes the exit code to be 126/127 instead of 1.
>
> + write (2, s, strlen (s));
Surprisingly, strlen() is not listed in current POSIX' list of
async-signal-safe functions. But I have an open bug to remedy that, and
don't see any problem in using it.
Correction - I forgot my own history. POSIX 2008 had indeed omitted it,
but my bug was accepted, and strlen() _is_ async-signal-safe in POSIX
2017, per
http://austingroupbugs.net/view.php?id=692
--
Eric Blake, Principal Software Engineer
Red Hat, Inc. +1-919-301-3226
Virtualization:
qemu.org |
libvirt.org