Passing NULL to debugfs_create_str() causes a NULL pointer dereference
upon reading, and is no longer permitted. Change the default values of
dmc_firmware_path and vbt_firmware to empty strings ("").

Existing code that consumes these parameters already verifies both
pointer validity and string length, so empty strings are handled
correctly. Furthermore, heap allocation is not required here: these
debugfs parameters are created with strictly read-only permissions
(0400). As a result, the debugfs write operation is never invoked,
meaning the static empty string will not be erroneously freed by
kfree().

Fixes: e9913f0bd2e1 ("drm/i915/display: move dmc_firmware_path to display 
params")
Fixes: 29292bc6cc37 ("drm/i915/display: Move vbt_firmware module parameter 
under display")
Signed-off-by: Gui-Dong Han <[email protected]>
---
 drivers/gpu/drm/i915/display/intel_display_params.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_display_params.h 
b/drivers/gpu/drm/i915/display/intel_display_params.h
index b95ecf728daa..0a8cad98d480 100644
--- a/drivers/gpu/drm/i915/display/intel_display_params.h
+++ b/drivers/gpu/drm/i915/display/intel_display_params.h
@@ -23,8 +23,8 @@ struct drm_printer;
  *       debugfs file
  */
 #define INTEL_DISPLAY_PARAMS_FOR_EACH(param) \
-       param(char *, dmc_firmware_path, NULL, 0400) \
-       param(char *, vbt_firmware, NULL, 0400) \
+       param(char *, dmc_firmware_path, "", 0400) \
+       param(char *, vbt_firmware, "", 0400) \
        param(int, lvds_channel_mode, 0, 0400) \
        param(int, panel_use_ssc, -1, 0600) \
        param(int, vbt_sdvo_panel_type, -1, 0400) \
-- 
2.43.0

Reply via email to