On Wed, 18 Mar 2026, Gui-Dong Han <[email protected]> wrote:
> 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) \

Admittedly this is all very convoluted, but these NULL pointers (or
pointers to them) are never passed to debugfs_create_str().

BR,
Jani.


>       param(int, lvds_channel_mode, 0, 0400) \
>       param(int, panel_use_ssc, -1, 0600) \
>       param(int, vbt_sdvo_panel_type, -1, 0400) \

-- 
Jani Nikula, Intel

Reply via email to