Re: [PATCH] pinctrl: intel: fix NULL pointer deref

From: Mika Westerberg
Date: Wed Jun 09 2021 - 06:12:19 EST


Hi,

On Wed, Jun 09, 2021 at 08:27:22AM +0200, Henning Schild wrote:
> match could be NULL in which case we do not go ACPI after all
>
> Signed-off-by: Henning Schild <henning.schild@xxxxxxxxxxx>
> ---
> drivers/pinctrl/intel/pinctrl-intel.c | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/pinctrl/intel/pinctrl-intel.c b/drivers/pinctrl/intel/pinctrl-intel.c
> index 85750974d182..dca17bb76cac 100644
> --- a/drivers/pinctrl/intel/pinctrl-intel.c
> +++ b/drivers/pinctrl/intel/pinctrl-intel.c
> @@ -1601,12 +1601,12 @@ const struct intel_pinctrl_soc_data *intel_pinctrl_get_soc_data(struct platform_
> const struct intel_pinctrl_soc_data *data = NULL;
> const struct intel_pinctrl_soc_data **table;
> struct acpi_device *adev;
> + const void *match;
> unsigned int i;
>
> adev = ACPI_COMPANION(&pdev->dev);
> - if (adev) {
> - const void *match = device_get_match_data(&pdev->dev);
> -
> + match = device_get_match_data(&pdev->dev);

Actually we don't even call intel_pinctrl_get_soc_data() if the ACPI ID
is not listed in the corresponding driver's module table. So I don't
think match can ever be NULL.

But feel free to prove me wrong ;-)