Skip to content

Commit 4944029

Browse files
committed
landlock: Handle weird files
A corrupted filesystem (e.g. bcachefs) might return weird files. Instead of throwing a warning and allowing access to such file, treat them as regular files. Cc: Dave Chinner <david@fromorbit.com> Cc: Kent Overstreet <kent.overstreet@linux.dev> Cc: Paul Moore <paul@paul-moore.com> Reported-by: syzbot+34b68f850391452207df@syzkaller.appspotmail.com Closes: https://lore.kernel.org/r/000000000000a65b35061cffca61@google.com Reported-by: syzbot+360866a59e3c80510a62@syzkaller.appspotmail.com Closes: https://lore.kernel.org/r/67379b3f.050a0220.85a0.0001.GAE@google.com Reported-by: Ubisectech Sirius <bugreport@ubisectech.com> Closes: https://lore.kernel.org/r/c426821d-8380-46c4-a494-7008bbd7dd13.bugreport@ubisectech.com Fixes: cb2c7d1 ("landlock: Support filesystem access-control") Reviewed-by: Günther Noack <gnoack3000@gmail.com> Link: https://lore.kernel.org/r/20250110153918.241810-1-mic@digikod.net Signed-off-by: Mickaël Salaün <mic@digikod.net>
1 parent 078bf94 commit 4944029

1 file changed

Lines changed: 5 additions & 6 deletions

File tree

  • security/landlock

security/landlock/fs.c

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -937,10 +937,6 @@ static access_mask_t get_mode_access(const umode_t mode)
937937
switch (mode & S_IFMT) {
938938
case S_IFLNK:
939939
return LANDLOCK_ACCESS_FS_MAKE_SYM;
940-
case 0:
941-
/* A zero mode translates to S_IFREG. */
942-
case S_IFREG:
943-
return LANDLOCK_ACCESS_FS_MAKE_REG;
944940
case S_IFDIR:
945941
return LANDLOCK_ACCESS_FS_MAKE_DIR;
946942
case S_IFCHR:
@@ -951,9 +947,12 @@ static access_mask_t get_mode_access(const umode_t mode)
951947
return LANDLOCK_ACCESS_FS_MAKE_FIFO;
952948
case S_IFSOCK:
953949
return LANDLOCK_ACCESS_FS_MAKE_SOCK;
950+
case S_IFREG:
951+
case 0:
952+
/* A zero mode translates to S_IFREG. */
954953
default:
955-
WARN_ON_ONCE(1);
956-
return 0;
954+
/* Treats weird files as regular files. */
955+
return LANDLOCK_ACCESS_FS_MAKE_REG;
957956
}
958957
}
959958

0 commit comments

Comments
 (0)