Passing NULL to debugfs_create_str() causes a NULL pointer dereference
upon reading, and creating debugfs nodes with NULL string pointers is no
longer permitted. Change the initialization of firmware_file to an
allocated empty string. Existing driver code using this field handles
empty strings correctly.

Fixes: fe46d2a4301d ("soundwire: debugfs: add interface to read/write commands")
Reported-by: yangshiguang <[email protected]>
Closes: 
https://lore.kernel.org/lkml/[email protected]/
Signed-off-by: Gui-Dong Han <[email protected]>
---
 drivers/soundwire/debugfs.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/soundwire/debugfs.c b/drivers/soundwire/debugfs.c
index ccc9670ef77c..d4abe8bfca76 100644
--- a/drivers/soundwire/debugfs.c
+++ b/drivers/soundwire/debugfs.c
@@ -358,8 +358,9 @@ void sdw_slave_debugfs_init(struct sdw_slave *slave)
        debugfs_create_file("go", 0200, d, slave, &cmd_go_fops);
 
        debugfs_create_file("read_buffer", 0400, d, slave, &read_buffer_fops);
-       firmware_file = NULL;
-       debugfs_create_str("firmware_file", 0200, d, &firmware_file);
+       firmware_file = devm_kstrdup(&slave->dev, "", GFP_KERNEL);
+       if (firmware_file)
+               debugfs_create_str("firmware_file", 0200, d, &firmware_file);
 
        slave->debugfs = d;
 }
-- 
2.43.0

Reply via email to