git: 2954af09f143 - main - chflags(1): obey siginfo request on chflagsat(2) failure
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Tue, 30 Jan 2024 20:23:12 UTC
The branch main has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=2954af09f143ed1e484f7ca520e0d2611101e248 commit 2954af09f143ed1e484f7ca520e0d2611101e248 Author: Konstantin Belousov <kib@FreeBSD.org> AuthorDate: 2024-01-30 18:07:59 +0000 Commit: Konstantin Belousov <kib@FreeBSD.org> CommitDate: 2024-01-30 20:21:55 +0000 chflags(1): obey siginfo request on chflagsat(2) failure Note that the error diagnostic can now be printed both to stderr due to the absence of the -f flag and to stdout due to SIGINFO simultaneously. Noted and reviewed by: jrtc27 Sponsored by: The FreeBSD Foundation MFC after: 1 week --- bin/chflags/chflags.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/bin/chflags/chflags.c b/bin/chflags/chflags.c index 0972240558df..a78ebbfd471d 100644 --- a/bin/chflags/chflags.c +++ b/bin/chflags/chflags.c @@ -61,7 +61,7 @@ main(int argc, char *argv[]) u_long clear, newflags, set; long val; int Hflag, Lflag, Rflag, fflag, hflag, vflag, xflag; - int ch, fts_options, oct, rval; + int ch, e, fts_options, oct, rval; char *flags, *ep; Hflag = Lflag = Rflag = fflag = hflag = vflag = xflag = 0; @@ -183,10 +183,16 @@ main(int argc, char *argv[]) continue; if (chflagsat(AT_FDCWD, p->fts_accpath, newflags, atflag) == -1) { + e = errno; if (!fflag) { - warn("%s", p->fts_path); + warnc(e, "%s", p->fts_path); rval = 1; } + if (siginfo) { + (void)printf("%s: %s\n", p->fts_path, + strerror(e)); + siginfo = 0; + } } else if (vflag || siginfo) { (void)printf("%s", p->fts_path); if (vflag > 1 || siginfo)