eventfs: Check for NULL ef in eventfs_set_attr()
authorSteven Rostedt (Google) <rostedt@goodmis.org>
Sun, 12 Nov 2023 17:18:17 +0000 (12:18 -0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 20 Nov 2023 10:59:38 +0000 (11:59 +0100)
The top level events directory dentry does not have a d_fsdata set to a
eventfs_file pointer. This dentry is still passed to eventfs_set_attr().
It can not assume that the d_fsdata is set. Check for that.

Link: https://lore.kernel.org/all/20231112104158.6638-1-milian.wolff@kdab.com/
Fixes: 9aaee3eebc91 ("eventfs: Save ownership and mode")
Reported-by: Milian Wolff <milian.wolff@kdab.com>
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
fs/tracefs/event_inode.c

index 5fcfb63..efbdc47 100644 (file)
@@ -113,14 +113,14 @@ static int eventfs_set_attr(struct mnt_idmap *idmap, struct dentry *dentry,
 
        mutex_lock(&eventfs_mutex);
        ef = dentry->d_fsdata;
-       if (ef->is_freed) {
+       if (ef && ef->is_freed) {
                /* Do not allow changes if the event is about to be removed. */
                mutex_unlock(&eventfs_mutex);
                return -ENODEV;
        }
 
        ret = simple_setattr(idmap, dentry, iattr);
-       if (!ret)
+       if (!ret && ef)
                update_attr(ef, iattr);
        mutex_unlock(&eventfs_mutex);
        return ret;