linux-serial.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [tty:tty-next 42/62] drivers/tty/serial/sccnxp.c:894 sccnxp_probe() error: we previously assumed 'pdata' could be null (see line 887)
@ 2013-01-17  6:59 Dan Carpenter
  2013-01-17  7:11 ` Alexander Shiyan
  2013-01-17 14:34 ` [PATCH] serial: sccnxp: Fix possible crash if no platform data supplied Alexander Shiyan
  0 siblings, 2 replies; 3+ messages in thread
From: Dan Carpenter @ 2013-01-17  6:59 UTC (permalink / raw)
  To: Alexander Shiyan; +Cc: linux-serial, kbuild

Hi Alexander,

FYI, there are new smatch warnings show up in

tree:   git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty.git tty-next
head:   e27a7d7977b07d701ba247e2ddb95466d95c898f
commit: ec063899b7b308019afa9f5eb32f0a58a6c6ee53 [42/62] serial: sccnxp: Implement polling mode

New smatch warnings:
drivers/tty/serial/sccnxp.c:894 sccnxp_probe() error: we previously assumed 'pdata' could be null (see line 887)

git remote add tty git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty.git
git remote update tty
git checkout ec063899b7b308019afa9f5eb32f0a58a6c6ee53
vim +/pdata +894 drivers/tty/serial/sccnxp.c

1d65c0b1 Alexander Shiyan 2012-08-25  881  	default:
1d65c0b1 Alexander Shiyan 2012-08-25  882  		dev_err(&pdev->dev, "Unsupported chip type %i\n", chiptype);
1d65c0b1 Alexander Shiyan 2012-08-25  883  		ret = -ENOTSUPP;
1d65c0b1 Alexander Shiyan 2012-08-25  884  		goto err_out;
1d65c0b1 Alexander Shiyan 2012-08-25  885  	}
1d65c0b1 Alexander Shiyan 2012-08-25  886  
1d65c0b1 Alexander Shiyan 2012-08-25 @887  	if (!pdata) {
1d65c0b1 Alexander Shiyan 2012-08-25  888  		dev_warn(&pdev->dev,
1d65c0b1 Alexander Shiyan 2012-08-25  889  			 "No platform data supplied, using defaults\n");
1d65c0b1 Alexander Shiyan 2012-08-25  890  		s->pdata.frequency = s->freq_std;
1d65c0b1 Alexander Shiyan 2012-08-25  891  	} else
1d65c0b1 Alexander Shiyan 2012-08-25  892  		memcpy(&s->pdata, pdata, sizeof(struct sccnxp_pdata));
1d65c0b1 Alexander Shiyan 2012-08-25  893  
ec063899 Alexander Shiyan 2012-12-03 @894  	if (pdata->poll_time_us) {
ec063899 Alexander Shiyan 2012-12-03  895  		dev_info(&pdev->dev, "Using poll mode, resolution %u usecs\n",
ec063899 Alexander Shiyan 2012-12-03  896  			 pdata->poll_time_us);
ec063899 Alexander Shiyan 2012-12-03  897  		s->poll = 1;

---
0-DAY kernel build testing backend              Open Source Technology Center
http://lists.01.org/mailman/listinfo/kbuild                 Intel Corporation

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

* Re: [tty:tty-next 42/62] drivers/tty/serial/sccnxp.c:894 sccnxp_probe() error: we previously assumed 'pdata' could be null (see line 887)
  2013-01-17  6:59 [tty:tty-next 42/62] drivers/tty/serial/sccnxp.c:894 sccnxp_probe() error: we previously assumed 'pdata' could be null (see line 887) Dan Carpenter
@ 2013-01-17  7:11 ` Alexander Shiyan
  2013-01-17 14:34 ` [PATCH] serial: sccnxp: Fix possible crash if no platform data supplied Alexander Shiyan
  1 sibling, 0 replies; 3+ messages in thread
From: Alexander Shiyan @ 2013-01-17  7:11 UTC (permalink / raw)
  To: Dan Carpenter; +Cc: linux-serial, kbuild

> Hi Alexander,
> 
> FYI, there are new smatch warnings show up in
> 
> tree:   git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty.git tty-next
> head:   e27a7d7977b07d701ba247e2ddb95466d95c898f
> commit: ec063899b7b308019afa9f5eb32f0a58a6c6ee53 [42/62] serial: sccnxp: Implement polling mode
> 
> New smatch warnings:
> drivers/tty/serial/sccnxp.c:894 sccnxp_probe() error: we previously assumed 'pdata' could be null (see line 887)
> 
> git remote add tty git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty.git
> git remote update tty
> git checkout ec063899b7b308019afa9f5eb32f0a58a6c6ee53
> vim +/pdata +894 drivers/tty/serial/sccnxp.c
> 
> 1d65c0b1 Alexander Shiyan 2012-08-25  881  	default:
> 1d65c0b1 Alexander Shiyan 2012-08-25  882  		dev_err(&pdev->dev, "Unsupported chip type %i\n", chiptype);
> 1d65c0b1 Alexander Shiyan 2012-08-25  883  		ret = -ENOTSUPP;
> 1d65c0b1 Alexander Shiyan 2012-08-25  884  		goto err_out;
> 1d65c0b1 Alexander Shiyan 2012-08-25  885  	}
> 1d65c0b1 Alexander Shiyan 2012-08-25  886  
> 1d65c0b1 Alexander Shiyan 2012-08-25 @887  	if (!pdata) {
> 1d65c0b1 Alexander Shiyan 2012-08-25  888  		dev_warn(&pdev->dev,
> 1d65c0b1 Alexander Shiyan 2012-08-25  889  			 "No platform data supplied, using defaults\n");
> 1d65c0b1 Alexander Shiyan 2012-08-25  890  		s->pdata.frequency = s->freq_std;
> 1d65c0b1 Alexander Shiyan 2012-08-25  891  	} else
> 1d65c0b1 Alexander Shiyan 2012-08-25  892  		memcpy(&s->pdata, pdata, sizeof(struct sccnxp_pdata));
> 1d65c0b1 Alexander Shiyan 2012-08-25  893  
> ec063899 Alexander Shiyan 2012-12-03 @894  	if (pdata->poll_time_us) {
> ec063899 Alexander Shiyan 2012-12-03  895  		dev_info(&pdev->dev, "Using poll mode, resolution %u usecs\n",
> ec063899 Alexander Shiyan 2012-12-03  896  			 pdata->poll_time_us);
> ec063899 Alexander Shiyan 2012-12-03  897  		s->poll = 1;
 
I agree. In this case (line 894), there should be:
if (s->pdata.poll_time_us) {
		dev_info(&pdev->dev, "Using poll mode, resolution %u usecs\n",
			 s->pdata.poll_time_us);
...

Today, post the fix. Thank you.

---

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

* [PATCH] serial: sccnxp: Fix possible crash if no platform data supplied
  2013-01-17  6:59 [tty:tty-next 42/62] drivers/tty/serial/sccnxp.c:894 sccnxp_probe() error: we previously assumed 'pdata' could be null (see line 887) Dan Carpenter
  2013-01-17  7:11 ` Alexander Shiyan
@ 2013-01-17 14:34 ` Alexander Shiyan
  1 sibling, 0 replies; 3+ messages in thread
From: Alexander Shiyan @ 2013-01-17 14:34 UTC (permalink / raw)
  To: linux-serial
  Cc: Alan Cox, Greg Kroah-Hartman, Dan Carpenter, Alexander Shiyan

This patch fix possible kernel crash if no platform data supplied.
We should not use platform data in this case, instead we will use
default values from private driver structure.

Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
---
 drivers/tty/serial/sccnxp.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/tty/serial/sccnxp.c b/drivers/tty/serial/sccnxp.c
index 0c86a0b..3fd83e3 100644
--- a/drivers/tty/serial/sccnxp.c
+++ b/drivers/tty/serial/sccnxp.c
@@ -897,9 +897,9 @@ static int sccnxp_probe(struct platform_device *pdev)
 	} else
 		memcpy(&s->pdata, pdata, sizeof(struct sccnxp_pdata));
 
-	if (pdata->poll_time_us) {
+	if (s->pdata.poll_time_us) {
 		dev_info(&pdev->dev, "Using poll mode, resolution %u usecs\n",
-			 pdata->poll_time_us);
+			 s->pdata.poll_time_us);
 		s->poll = 1;
 	}
 
-- 
1.7.8.6


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

end of thread, other threads:[~2013-01-17 15:02 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-01-17  6:59 [tty:tty-next 42/62] drivers/tty/serial/sccnxp.c:894 sccnxp_probe() error: we previously assumed 'pdata' could be null (see line 887) Dan Carpenter
2013-01-17  7:11 ` Alexander Shiyan
2013-01-17 14:34 ` [PATCH] serial: sccnxp: Fix possible crash if no platform data supplied Alexander Shiyan

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