bug-findutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[bug #64442] xargs closes stdin on receiving SIGUSR1 or SIGUSR2


From: anonymous
Subject: [bug #64442] xargs closes stdin on receiving SIGUSR1 or SIGUSR2
Date: Wed, 19 Jul 2023 08:21:54 -0400 (EDT)

Follow-up Comment #5, bug #64442 (project findutils):


>From sigaction(3p)
...
The _sa_flags_ field can be used to modify the behavior of the specified
signal.
...
SA_RESTART
This flag affects the behavior of interruptible functions; that is, those
specified to fail with errno set to *[EINTR]*. If set, and a function
specified as interruptible is interrupted by this signal, the function shall
restart and shall not fail with *[EINTR]* unless otherwise specified. If an
interruptible function which uses a timeout is restarted, the duration of the
timeout following the restart is set to an unspecified value that does  not
exceed the original timeout value. If the flag is not set, interruptible
functions interrupted by this signal shall fail with _errno_ set to
*[EINTR]*.
...

xargs sets _sa_flags_ to 0

xargs.c:735
xargs.c:741
  sigact.sa_flags = 0;

so read() is interrupted.

safe_read() is supposed to handle that but somehow doesn't.
Also safe_read() is supposed to but does not set SAFE_READ_ERROR for some
reason.

xargs.c:1377
      /* We use safe_read here in order to avoid an error if
         SIGUSR[12] is handled during the read system call. */




    _______________________________________________________

Reply to this item at:

  <https://savannah.gnu.org/bugs/?64442>

_______________________________________________
Message sent via Savannah
https://savannah.gnu.org/




reply via email to

[Prev in Thread] Current Thread [Next in Thread]