diff mbox series

[next,V2] dmaengine: ti: omap-dma: don't allow a null od->plat pointer to be dereferenced

Message ID 20200109131953.157154-1-colin.king@canonical.com (mailing list archive)
State Not Applicable
Headers show
Series [next,V2] dmaengine: ti: omap-dma: don't allow a null od->plat pointer to be dereferenced | expand

Commit Message

Colin King Jan. 9, 2020, 1:19 p.m. UTC
From: Colin Ian King <colin.king@canonical.com>

Currently when the call to dev_get_platdata returns null the driver issues
a warning and then later dereferences the null pointer.  Avoid this issue
by returning -ENODEV errror rather when the platform data is null and
change the warning to an appropriate error message.

Addresses-Coverity: ("Dereference after null check")
Fixes: 211010aeb097 ("dmaengine: ti: omap-dma: Pass sdma auxdata to driver and use it")
Signed-off-by: Colin Ian King <colin.king@canonical.com>
---

V2: return -ENODEV and change warning to an error message as suggested by
    Peter Ujfalusi.
---
 drivers/dma/ti/omap-dma.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

Comments

Peter Ujfalusi Jan. 9, 2020, 3:33 p.m. UTC | #1
Colin,

On 09/01/2020 15.19, Colin King wrote:
> From: Colin Ian King <colin.king@canonical.com>
> 
> Currently when the call to dev_get_platdata returns null the driver issues
> a warning and then later dereferences the null pointer.  Avoid this issue
> by returning -ENODEV errror rather when the platform data is null and
> change the warning to an appropriate error message.

Thank you for the update!

Acked-by: Peter Ujfalusi <peter.ujfalusi@ti.com>

> Addresses-Coverity: ("Dereference after null check")
> Fixes: 211010aeb097 ("dmaengine: ti: omap-dma: Pass sdma auxdata to driver and use it")
> Signed-off-by: Colin Ian King <colin.king@canonical.com>
> ---
> 
> V2: return -ENODEV and change warning to an error message as suggested by
>     Peter Ujfalusi.
> ---
>  drivers/dma/ti/omap-dma.c | 6 ++++--
>  1 file changed, 4 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/dma/ti/omap-dma.c b/drivers/dma/ti/omap-dma.c
> index fc8f7b2fc7b3..a93515015dce 100644
> --- a/drivers/dma/ti/omap-dma.c
> +++ b/drivers/dma/ti/omap-dma.c
> @@ -1658,8 +1658,10 @@ static int omap_dma_probe(struct platform_device *pdev)
>  	if (conf) {
>  		od->cfg = conf;
>  		od->plat = dev_get_platdata(&pdev->dev);
> -		if (!od->plat)
> -			dev_warn(&pdev->dev, "no sdma auxdata needed?\n");
> +		if (!od->plat) {
> +			dev_err(&pdev->dev, "omap_system_dma_plat_info is missing");
> +			return -ENODEV;
> +		}
>  	} else {
>  		od->cfg = &default_cfg;
>  
> 

- Péter

Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki.
Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki
Vinod Koul Jan. 10, 2020, 7:46 a.m. UTC | #2
On 09-01-20, 13:19, Colin King wrote:
> From: Colin Ian King <colin.king@canonical.com>
> 
> Currently when the call to dev_get_platdata returns null the driver issues
> a warning and then later dereferences the null pointer.  Avoid this issue
> by returning -ENODEV errror rather when the platform data is null and

s/errror/error :) never thought would correct Colin on spelling :)

With the typo fixes:

Acked-by: Vinod Koul <vkoul@kernel.org>
Colin King Jan. 10, 2020, 9:21 a.m. UTC | #3
On 10/01/2020 07:46, Vinod Koul wrote:
> On 09-01-20, 13:19, Colin King wrote:
>> From: Colin Ian King <colin.king@canonical.com>
>>
>> Currently when the call to dev_get_platdata returns null the driver issues
>> a warning and then later dereferences the null pointer.  Avoid this issue
>> by returning -ENODEV errror rather when the platform data is null and
> 
> s/errror/error :) never thought would correct Colin on spelling :)

Doh, I need to add that to the checkpatch dictionary ;-)

If this can be fixed up before it's applied then this would be
appreciated rather than me sending a V3.

> 
> With the typo fixes:
> 
> Acked-by: Vinod Koul <vkoul@kernel.org>
>
Tony Lindgren Jan. 13, 2020, 5:46 p.m. UTC | #4
* Colin Ian King <colin.king@canonical.com> [200110 09:22]:
> On 10/01/2020 07:46, Vinod Koul wrote:
> > On 09-01-20, 13:19, Colin King wrote:
> >> From: Colin Ian King <colin.king@canonical.com>
> >>
> >> Currently when the call to dev_get_platdata returns null the driver issues
> >> a warning and then later dereferences the null pointer.  Avoid this issue
> >> by returning -ENODEV errror rather when the platform data is null and
> > 
> > s/errror/error :) never thought would correct Colin on spelling :)
> 
> Doh, I need to add that to the checkpatch dictionary ;-)
> 
> If this can be fixed up before it's applied then this would be
> appreciated rather than me sending a V3.

I've fixed i up and pushed out into omap-for-v5.6/sdma.

Thanks,

Tony
diff mbox series

Patch

diff --git a/drivers/dma/ti/omap-dma.c b/drivers/dma/ti/omap-dma.c
index fc8f7b2fc7b3..a93515015dce 100644
--- a/drivers/dma/ti/omap-dma.c
+++ b/drivers/dma/ti/omap-dma.c
@@ -1658,8 +1658,10 @@  static int omap_dma_probe(struct platform_device *pdev)
 	if (conf) {
 		od->cfg = conf;
 		od->plat = dev_get_platdata(&pdev->dev);
-		if (!od->plat)
-			dev_warn(&pdev->dev, "no sdma auxdata needed?\n");
+		if (!od->plat) {
+			dev_err(&pdev->dev, "omap_system_dma_plat_info is missing");
+			return -ENODEV;
+		}
 	} else {
 		od->cfg = &default_cfg;