git: d0bf8b5aaccb - main - wc: Fix SIGINFO race with casper init.
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sun, 18 Feb 2024 18:58:07 UTC
The branch main has been updated by bdrewery: URL: https://cgit.FreeBSD.org/src/commit/?id=d0bf8b5aaccbe082d3728279620b8f8474d9ca8a commit d0bf8b5aaccbe082d3728279620b8f8474d9ca8a Author: Bryan Drewery <bdrewery@FreeBSD.org> AuthorDate: 2024-02-18 18:55:11 +0000 Commit: Bryan Drewery <bdrewery@FreeBSD.org> CommitDate: 2024-02-18 18:57:42 +0000 wc: Fix SIGINFO race with casper init. If a file is specified then fileargs_init(3) may return [EINTR]. With the SIGINFO handler not being SA_RESTART this causes an early exit if a SIGINFO comes in. Rather than checking for [EINTR] or changing the handler just move it later which resolves the problem. --- usr.bin/wc/wc.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/usr.bin/wc/wc.c b/usr.bin/wc/wc.c index 76b65e5f870d..4e8a2d8a8b59 100644 --- a/usr.bin/wc/wc.c +++ b/usr.bin/wc/wc.c @@ -117,8 +117,6 @@ main(int argc, char *argv[]) argv += optind; argc -= optind; - (void)signal(SIGINFO, siginfo_handler); - fa = fileargs_init(argc, argv, O_RDONLY, 0, cap_rights_init(&rights, CAP_READ, CAP_FSTAT), FA_OPEN); if (fa == NULL) @@ -137,6 +135,7 @@ main(int argc, char *argv[]) xo_open_container("wc"); xo_open_list("file"); + (void)signal(SIGINFO, siginfo_handler); errors = 0; total = 0; if (argc == 0) {