summaryrefslogtreecommitdiffstats
path: root/src/ctx.h
diff options
context:
space:
mode:
authorTavian Barnes <tavianator@tavianator.com>2024-07-30 16:44:17 -0400
committerTavian Barnes <tavianator@tavianator.com>2024-08-02 17:18:26 -0400
commit6290ce41f3ec1f889abb881cf90ca91da869b5b2 (patch)
tree679b1717100bd9f4c693d9d8b9463d51b195fd6c /src/ctx.h
parentb8a008dc9b84804d8b2c751daa9c04bd86d5e59c (diff)
downloadbfs-6290ce41f3ec1f889abb881cf90ca91da869b5b2.tar.xz
parse: Take umask into account in parse_mode()
POSIX 2024 clarified that find(1) is meant to work exactly like chmod(1) here, so for modes like +rw,-x with no "who" specified, apply the umask. Link: https://www.austingroupbugs.net/view.php?id=1392
Diffstat (limited to 'src/ctx.h')
-rw-r--r--src/ctx.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/ctx.h b/src/ctx.h
index b28a63c..064e8b0 100644
--- a/src/ctx.h
+++ b/src/ctx.h
@@ -16,6 +16,7 @@
#include "trie.h"
#include <stddef.h>
#include <sys/resource.h>
+#include <sys/types.h>
#include <time.h>
struct CFILE;
@@ -98,6 +99,9 @@ struct bfs_ctx {
/** The number of files owned by the context. */
int nfiles;
+ /** The current file creation mask. */
+ mode_t umask;
+
/** The initial RLIMIT_NOFILE limits. */
struct rlimit orig_nofile;
/** The current RLIMIT_NOFILE limits. */