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