| 3c2643a7 | 19-Nov-2025 |
Dag-Erling Smørgrav <des@FreeBSD.org> |
sh: Don't assume EINTR means SIGALRM
While waiting for input in the read builtin, if select() is interrupted but there is no pending signal, we act like we timed out, and return the same status as i
sh: Don't assume EINTR means SIGALRM
While waiting for input in the read builtin, if select() is interrupted but there is no pending signal, we act like we timed out, and return the same status as if we had been interrupted by SIGALRM, instead of looping until we actually do time out.
* Replace the single select() call with a ppoll() loop.
* Improve validation of the timeout value. We now accept things like "1h30m15s", which we used to silently truncate to "1h". The flip side is that we no longer accept things like "1hour" or "5sec".
* Modify the existing `read -t 0` test case to verify that read returns immediately when there is input and fails immediately when there isn't.
* Add a second test case which performs the same tests with a non-zero timeout value.
PR: 290844 MFC after: 1 week Fixes: c4539460e3a4 ("sh: Improve error handling in read builtin:") Reviewed by: jilles, bdrewery Differential Revision: https://reviews.freebsd.org/D53761
show more ...
|
| a1423456 | 20-Aug-2022 |
Piotr Pawel Stefaniak <pstef@FreeBSD.org> |
sh: nullify ENV in tests
This is to avoid loading .shrc which may contain commands that would result in output different than expected.
Reviewed by: jilles Differential Revision: https://reviews.fr
sh: nullify ENV in tests
This is to avoid loading .shrc which may contain commands that would result in output different than expected.
Reviewed by: jilles Differential Revision: https://reviews.freebsd.org/D35876
show more ...
|