git: fae467c2212c - main - chflags(1): Fix -f option

From: Konstantin Belousov <kib_at_FreeBSD.org>
Date: Tue, 30 Jan 2024 17:10:28 UTC
The branch main has been updated by kib:

URL: https://cgit.FreeBSD.org/src/commit/?id=fae467c2212ced8e82f5fa385d316445c8874941

commit fae467c2212ced8e82f5fa385d316445c8874941
Author:     Ricardo Branco <rbranco@suse.de>
AuthorDate: 2024-01-29 22:17:47 +0000
Commit:     Konstantin Belousov <kib@FreeBSD.org>
CommitDate: 2024-01-30 17:08:03 +0000

    chflags(1): Fix -f option
    
    As stated in the man page, -f must not emit warning on error, and must
    not set the utility exit code.
    
    PR:     276723
    Github PR:      https://github.com/freebsd/freebsd-src/pull/1088
    Reviewed by:    imp, kib
    MFC after:      1 week
---
 bin/chflags/chflags.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/bin/chflags/chflags.c b/bin/chflags/chflags.c
index b92d5b6439f5..0972240558df 100644
--- a/bin/chflags/chflags.c
+++ b/bin/chflags/chflags.c
@@ -182,9 +182,11 @@ main(int argc, char *argv[])
 		if (newflags == p->fts_statp->st_flags)
 			continue;
 		if (chflagsat(AT_FDCWD, p->fts_accpath, newflags,
-		    atflag) == -1 && !fflag) {
-			warn("%s", p->fts_path);
-			rval = 1;
+		    atflag) == -1) {
+			if (!fflag) {
+				warn("%s", p->fts_path);
+				rval = 1;
+			}
 		} else if (vflag || siginfo) {
 			(void)printf("%s", p->fts_path);
 			if (vflag > 1 || siginfo)