Skip to content

Commit 31de839

Browse files
2045geminigregkh
authored andcommitted
debugfs: check for NULL pointer in debugfs_create_str()
Passing a NULL pointer to debugfs_create_str() leads to a NULL pointer dereference when the debugfs file is read. Following upstream discussions, forbid the creation of debugfs string files with NULL pointers. Add a WARN_ON() to expose offending callers and return early. Fixes: 9af0440 ("debugfs: Implement debugfs_create_str()") Reported-by: yangshiguang <yangshiguang@xiaomi.com> Closes: https://lore.kernel.org/lkml/2025122221-gag-malt-75ba@gregkh/ Suggested-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by: Gui-Dong Han <hanguidong02@gmail.com> Link: https://patch.msgid.link/20260323085930.88894-2-hanguidong02@gmail.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
1 parent 56e3ee7 commit 31de839

1 file changed

Lines changed: 4 additions & 1 deletion

File tree

fs/debugfs/file.c

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1127,7 +1127,7 @@ static const struct file_operations fops_str_wo = {
11271127
* directory dentry if set. If this parameter is %NULL, then the
11281128
* file will be created in the root of the debugfs filesystem.
11291129
* @value: a pointer to the variable that the file should read to and write
1130-
* from.
1130+
* from. This pointer and the string it points to must not be %NULL.
11311131
*
11321132
* This function creates a file in debugfs with the given name that
11331133
* contains the value of the variable @value. If the @mode variable is so
@@ -1136,6 +1136,9 @@ static const struct file_operations fops_str_wo = {
11361136
void debugfs_create_str(const char *name, umode_t mode,
11371137
struct dentry *parent, char **value)
11381138
{
1139+
if (WARN_ON(!value || !*value))
1140+
return;
1141+
11391142
debugfs_create_mode_unsafe(name, mode, parent, value, &fops_str,
11401143
&fops_str_ro, &fops_str_wo);
11411144
}

0 commit comments

Comments
 (0)