find: Use the current umask to parse -perm - sbase - suckless unix tools
 (HTM) git clone git://git.suckless.org/sbase
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit 8f9824e34bbf5a7c61a425ebfca93bff6364ecb9
 (DIR) parent e861343db1d13e1e7497e81db56526fd5505704b
 (HTM) Author: Tavian Barnes <tavianator@tavianator.com>
       Date:   Sat, 22 Feb 2025 13:14:49 +0100
       
       find: Use the current umask to parse -perm
       
       https://www.austingroupbugs.net/view.php?id=1392
       
       Diffstat:
         M find.c                              |       6 +++++-
       
       1 file changed, 5 insertions(+), 1 deletion(-)
       ---
 (DIR) diff --git a/find.c b/find.c
       @@ -516,6 +516,7 @@ get_xdev_arg(char *argv[], union extra *extra)
        static char **
        get_perm_arg(char *argv[], union extra *extra)
        {
       +        mode_t mask;
                struct permarg *p = extra->p = emalloc(sizeof(*p));
        
                if (**argv == '-')
       @@ -523,7 +524,10 @@ get_perm_arg(char *argv[], union extra *extra)
                else
                        p->exact = 1;
        
       -        p->mode = parsemode(*argv, 0, 0);
       +        mask = umask(0);
       +        umask(mask);
       +
       +        p->mode = parsemode(*argv, 0, mask);
        
                return argv;
        }