commit 71ba97c175c805ab1e473c62a9581073cc791b66
Author:     Michael Forney <[email protected]>
AuthorDate: Fri Nov 1 01:58:54 2019 -0700
Commit:     Michael Forney <[email protected]>
CommitDate: Fri Nov 1 01:58:54 2019 -0700

    chmod: Clear the S_IFMT bits before calling chmod

diff --git a/chmod.c b/chmod.c
index c12d2f4..2a0085d 100644
--- a/chmod.c
+++ b/chmod.c
@@ -13,7 +13,7 @@ chmodr(const char *path, struct stat *st, void *data, struct 
recursor *r)
 {
        mode_t m;
 
-       m = parsemode(modestr, st->st_mode, mask);
+       m = parsemode(modestr, st->st_mode & ~S_IFMT, mask);
        if (chmod(path, m) < 0) {
                weprintf("chmod %s:", path);
                ret = 1;

Reply via email to