From fbc2252f4f5260d616d6929351aa9cac5d227124 Mon Sep 17 00:00:00 2001
From: Elliott Hughes <enh@google.com>
Date: Tue, 15 Dec 2020 10:53:09 -0800
Subject: chmod.c: mask out the file type bits.

The kernel will do this for us on both Linux and macOS, but error
messages are a bit misleading if we don't do it ourselves --- it
can look as if the failure is because of the type bits.
---
 toys/posix/chmod.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

(limited to 'toys')

diff --git a/toys/posix/chmod.c b/toys/posix/chmod.c
index 3838b527..2cdda951 100644
--- a/toys/posix/chmod.c
+++ b/toys/posix/chmod.c
@@ -50,7 +50,7 @@ static int do_chmod(struct dirtree *try)
     // symlinks mentioned directly as arguments. We'll fail, of course,
     // but that's what you asked for in that case.
   } else {
-    mode = string_to_mode(TT.mode, try->st.st_mode);
+    mode = string_to_mode(TT.mode, try->st.st_mode & ~S_IFMT);
     if (FLAG(v)) {
       char *s = dirtree_path(try, 0);
 
-- 
cgit v1.2.3