* [PATCH] spi/imx: prevent NULL pointer dereference in spi_imx_probe() @ 2012-04-03 13:03 Lothar Waßmann [not found] ` <1333458224-7602-1-git-send-email-LW-bxm8fMRDkQLDiMYJYoSAnRvVK+yQ3ZXh@public.gmane.org> 0 siblings, 1 reply; 2+ messages in thread From: Lothar Waßmann @ 2012-04-03 13:03 UTC (permalink / raw) To: linux-kernel Cc: Juergen Beisert, Grant Likely, spi-devel-general, Lothar Waßmann When no platform_data is present and either 'spi-num-chipselects' is not defined in the DT or 'cs-gpios' has less entries than 'spi-num-chipselects' specifies, the NULL platform_data pointer is being dereferenced. Signed-off-by: Lothar Waßmann <LW@KARO-electronics.de> --- drivers/spi/spi-imx.c | 10 +++++++--- 1 files changed, 7 insertions(+), 3 deletions(-) diff --git a/drivers/spi/spi-imx.c b/drivers/spi/spi-imx.c index 373f4ff..570f220 100644 --- a/drivers/spi/spi-imx.c +++ b/drivers/spi/spi-imx.c @@ -766,8 +766,12 @@ static int __devinit spi_imx_probe(struct platform_device *pdev) } ret = of_property_read_u32(np, "fsl,spi-num-chipselects", &num_cs); - if (ret < 0) - num_cs = mxc_platform_info->num_chipselect; + if (ret < 0) { + if (mxc_platform_info) + num_cs = mxc_platform_info->num_chipselect; + else + return ret; + } master = spi_alloc_master(&pdev->dev, sizeof(struct spi_imx_data) + sizeof(int) * num_cs); @@ -784,7 +788,7 @@ static int __devinit spi_imx_probe(struct platform_device *pdev) for (i = 0; i < master->num_chipselect; i++) { int cs_gpio = of_get_named_gpio(np, "cs-gpios", i); - if (cs_gpio < 0) + if (cs_gpio < 0 && mxc_platform_info) cs_gpio = mxc_platform_info->chipselect[i]; spi_imx->chipselect[i] = cs_gpio; -- 1.7.2.5 ^ permalink raw reply related [flat|nested] 2+ messages in thread
[parent not found: <1333458224-7602-1-git-send-email-LW-bxm8fMRDkQLDiMYJYoSAnRvVK+yQ3ZXh@public.gmane.org>]
* Re: [PATCH] spi/imx: prevent NULL pointer dereference in spi_imx_probe() [not found] ` <1333458224-7602-1-git-send-email-LW-bxm8fMRDkQLDiMYJYoSAnRvVK+yQ3ZXh@public.gmane.org> @ 2012-04-03 23:27 ` Grant Likely 0 siblings, 0 replies; 2+ messages in thread From: Grant Likely @ 2012-04-03 23:27 UTC (permalink / raw) To: Lothar Waßmann, linux-kernel-u79uwXL29TY76Z2rM5mHXA Cc: spi-devel-general-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f, Juergen Beisert, Lothar Waßmann [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #1: Type: text/plain, Size: 1896 bytes --] On Tue, 3 Apr 2012 15:03:44 +0200, Lothar Waßmann <LW-bxm8fMRDkQLDiMYJYoSAnRvVK+yQ3ZXh@public.gmane.org> wrote: > When no platform_data is present and either 'spi-num-chipselects' is > not defined in the DT or 'cs-gpios' has less entries than > 'spi-num-chipselects' specifies, the NULL platform_data pointer is > being dereferenced. > > Signed-off-by: Lothar Waßmann <LW-bxm8fMRDkQLDiMYJYoSAnRvVK+yQ3ZXh@public.gmane.org> Applied, thanks. g. > --- > drivers/spi/spi-imx.c | 10 +++++++--- > 1 files changed, 7 insertions(+), 3 deletions(-) > > diff --git a/drivers/spi/spi-imx.c b/drivers/spi/spi-imx.c > index 373f4ff..570f220 100644 > --- a/drivers/spi/spi-imx.c > +++ b/drivers/spi/spi-imx.c > @@ -766,8 +766,12 @@ static int __devinit spi_imx_probe(struct platform_device *pdev) > } > > ret = of_property_read_u32(np, "fsl,spi-num-chipselects", &num_cs); > - if (ret < 0) > - num_cs = mxc_platform_info->num_chipselect; > + if (ret < 0) { > + if (mxc_platform_info) > + num_cs = mxc_platform_info->num_chipselect; > + else > + return ret; > + } > > master = spi_alloc_master(&pdev->dev, > sizeof(struct spi_imx_data) + sizeof(int) * num_cs); > @@ -784,7 +788,7 @@ static int __devinit spi_imx_probe(struct platform_device *pdev) > > for (i = 0; i < master->num_chipselect; i++) { > int cs_gpio = of_get_named_gpio(np, "cs-gpios", i); > - if (cs_gpio < 0) > + if (cs_gpio < 0 && mxc_platform_info) > cs_gpio = mxc_platform_info->chipselect[i]; > > spi_imx->chipselect[i] = cs_gpio; > -- > 1.7.2.5 > > -- > To unsubscribe from this list: send the line "unsubscribe linux-kernel" in > the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > Please read the FAQ at http://www.tux.org/lkml/ -- Grant Likely, B.Sc, P.Eng. Secret Lab Technologies,Ltd. [-- Attachment #2: Type: text/plain, Size: 274 bytes --] ------------------------------------------------------------------------------ Better than sec? Nothing is better than sec when it comes to monitoring Big Data applications. Try Boundary one-second resolution app monitoring today. Free. http://p.sf.net/sfu/Boundary-dev2dev [-- Attachment #3: Type: text/plain, Size: 210 bytes --] _______________________________________________ spi-devel-general mailing list spi-devel-general-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org https://lists.sourceforge.net/lists/listinfo/spi-devel-general ^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2012-04-03 23:27 UTC | newest] Thread overview: 2+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2012-04-03 13:03 [PATCH] spi/imx: prevent NULL pointer dereference in spi_imx_probe() Lothar Waßmann [not found] ` <1333458224-7602-1-git-send-email-LW-bxm8fMRDkQLDiMYJYoSAnRvVK+yQ3ZXh@public.gmane.org> 2012-04-03 23:27 ` Grant Likely
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).