]> git.itanic.dy.fi Git - linux-stable/commitdiff
reiserfs: Initialize sec->length in reiserfs_security_init().
authorTetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
Thu, 11 May 2023 14:48:45 +0000 (23:48 +0900)
committerPaul Moore <paul@paul-moore.com>
Thu, 25 May 2023 21:44:44 +0000 (17:44 -0400)
syzbot is reporting that sec->length is not initialized.

Since security_inode_init_security() returns 0 when initxattrs is provided
but call_int_hook(inode_init_security) returned -EOPNOTSUPP, control will
reach to "if (sec->length && ...) {" without initializing sec->length.

Reported-by: syzbot <syzbot+00a3779539a23cbee38c@syzkaller.appspotmail.com>
Closes: https://syzkaller.appspot.com/bug?extid=00a3779539a23cbee38c
Signed-off-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
Fixes: 52ca4b6435a4 ("reiserfs: Switch to security_inode_init_security()")
Signed-off-by: Paul Moore <paul@paul-moore.com>
fs/reiserfs/xattr_security.c

index 6e0a099dd7886bd571aa4a4c56957de7a6f357ac..078dd8cc312fc2000dbd30bf2b8091f4e55a3682 100644 (file)
@@ -67,6 +67,7 @@ int reiserfs_security_init(struct inode *dir, struct inode *inode,
 
        sec->name = NULL;
        sec->value = NULL;
+       sec->length = 0;
 
        /* Don't add selinux attributes on xattrs - they'll never get used */
        if (IS_PRIVATE(dir))