linux-input.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2] input: pxa27x_keypad: fix NULL pointer dereference
@ 2013-09-18 15:03 Mike Dunn
  2013-09-18 15:17 ` Dmitry Torokhov
  0 siblings, 1 reply; 2+ messages in thread
From: Mike Dunn @ 2013-09-18 15:03 UTC (permalink / raw)
  To: linux-input
  Cc: Mike Dunn, Dmitry Torokhov, Chao Xie, Robert Jarzmik, Marek Vasut

A NULL pointer dereference exception occurs in the driver probe function when
device tree is used.  The pdata pointer will be NULL in this case, but the code
dereferences it in all cases.  When device tree is used, a platform data
structure is allocated and initialized, and in all cases this pointer is copied
to the driver's private data, so the variable being tested should be accessed
through the driver's private data structure.

Signed-off-by: Mike Dunn <mikedunn@newsguy.com>
---
Changelog:
v2:
Initialize pdata for DT case, instead of referencing through keypad struct.

 drivers/input/keyboard/pxa27x_keypad.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/input/keyboard/pxa27x_keypad.c b/drivers/input/keyboard/pxa27x_keypad.c
index 134c3b4..d02bdb2 100644
--- a/drivers/input/keyboard/pxa27x_keypad.c
+++ b/drivers/input/keyboard/pxa27x_keypad.c
@@ -788,8 +788,10 @@ static int pxa27x_keypad_probe(struct platform_device *pdev)
 
 	if (pdata)
 		error = pxa27x_keypad_build_keycode(keypad);
-	else
+	else {
 		error = pxa27x_keypad_build_keycode_from_dt(keypad);
+		pdata = keypad->pdata;
+	}
 	if (error) {
 		dev_err(&pdev->dev, "failed to build keycode\n");
 		goto failed_put_clk;
-- 
1.8.1.5


^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH v2] input: pxa27x_keypad: fix NULL pointer dereference
  2013-09-18 15:03 [PATCH v2] input: pxa27x_keypad: fix NULL pointer dereference Mike Dunn
@ 2013-09-18 15:17 ` Dmitry Torokhov
  0 siblings, 0 replies; 2+ messages in thread
From: Dmitry Torokhov @ 2013-09-18 15:17 UTC (permalink / raw)
  To: Mike Dunn; +Cc: linux-input, Chao Xie, Robert Jarzmik, Marek Vasut

On Wed, Sep 18, 2013 at 08:03:44AM -0700, Mike Dunn wrote:
> A NULL pointer dereference exception occurs in the driver probe function when
> device tree is used.  The pdata pointer will be NULL in this case, but the code
> dereferences it in all cases.  When device tree is used, a platform data
> structure is allocated and initialized, and in all cases this pointer is copied
> to the driver's private data, so the variable being tested should be accessed
> through the driver's private data structure.
> 
> Signed-off-by: Mike Dunn <mikedunn@newsguy.com>

Applied, thank you.

> ---
> Changelog:
> v2:
> Initialize pdata for DT case, instead of referencing through keypad struct.
> 
>  drivers/input/keyboard/pxa27x_keypad.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/input/keyboard/pxa27x_keypad.c b/drivers/input/keyboard/pxa27x_keypad.c
> index 134c3b4..d02bdb2 100644
> --- a/drivers/input/keyboard/pxa27x_keypad.c
> +++ b/drivers/input/keyboard/pxa27x_keypad.c
> @@ -788,8 +788,10 @@ static int pxa27x_keypad_probe(struct platform_device *pdev)
>  
>  	if (pdata)
>  		error = pxa27x_keypad_build_keycode(keypad);
> -	else
> +	else {
>  		error = pxa27x_keypad_build_keycode_from_dt(keypad);
> +		pdata = keypad->pdata;
> +	}
>  	if (error) {
>  		dev_err(&pdev->dev, "failed to build keycode\n");
>  		goto failed_put_clk;
> -- 
> 1.8.1.5
> 

-- 
Dmitry

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2013-09-18 15:18 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-09-18 15:03 [PATCH v2] input: pxa27x_keypad: fix NULL pointer dereference Mike Dunn
2013-09-18 15:17 ` Dmitry Torokhov

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).