Skip to content

Commit 54261af

Browse files
sinkapJames Morris
authored andcommitted
security: Fix the default value of fs_context_parse_param hook
security_fs_context_parse_param is called by vfs_parse_fs_param and a succussful return value (i.e 0) implies that a parameter will be consumed by the LSM framework. This stops all further parsing of the parmeter by VFS. Furthermore, if an LSM hook returns a success, the remaining LSM hooks are not invoked for the parameter. The current default behavior of returning success means that all the parameters are expected to be parsed by the LSM hook and none of them end up being populated by vfs in fs_context This was noticed when lsm=bpf is supplied on the command line before any other LSM. As the bpf lsm uses this default value to implement a default hook, this resulted in a failure to parse any fs_context parameters and a failure to mount the root filesystem. Fixes: 98e828a ("security: Refactor declaration of LSM hooks") Reported-by: Mikko Ylinen <[email protected]> Signed-off-by: KP Singh <[email protected]> Signed-off-by: James Morris <[email protected]>
1 parent c45e8bc commit 54261af

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

include/linux/lsm_hook_defs.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ LSM_HOOK(void, LSM_RET_VOID, bprm_committing_creds, struct linux_binprm *bprm)
5555
LSM_HOOK(void, LSM_RET_VOID, bprm_committed_creds, struct linux_binprm *bprm)
5656
LSM_HOOK(int, 0, fs_context_dup, struct fs_context *fc,
5757
struct fs_context *src_sc)
58-
LSM_HOOK(int, 0, fs_context_parse_param, struct fs_context *fc,
58+
LSM_HOOK(int, -ENOPARAM, fs_context_parse_param, struct fs_context *fc,
5959
struct fs_parameter *param)
6060
LSM_HOOK(int, 0, sb_alloc_security, struct super_block *sb)
6161
LSM_HOOK(void, LSM_RET_VOID, sb_free_security, struct super_block *sb)

0 commit comments

Comments
 (0)