From 6f444459586b5012717f37a3e51024b3abb224ec Mon Sep 17 00:00:00 2001 From: Mike Frysinger Date: Sun, 15 Jan 2023 15:31:25 -0500 Subject: [PATCH] checkpath: add missing sticky/set*id mode bits to check We incorrectly masked out the upper 3 bits when checking to see if the permissions need updating leading us to run chmod when not needed. Fixes #482. --- src/checkpath/checkpath.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/checkpath/checkpath.c b/src/checkpath/checkpath.c index 1ced7168..735be758 100644 --- a/src/checkpath/checkpath.c +++ b/src/checkpath/checkpath.c @@ -285,7 +285,7 @@ static int do_check(char *path, uid_t uid, gid_t gid, mode_t mode, return -1; } - if (mode && (st.st_mode & 0777) != mode) { + if (mode && (st.st_mode & 07777) != mode) { if ((type != inode_dir) && (st.st_nlink > 1)) { eerror("%s: chmod: Too many hard links to %s", applet, path); close(readfd);