[PATCH] staging: unisys: virtpci: virtpci.c: Fix for possible null pointer dereference

From: Rickard Strandqvist
Date: Sun Dec 14 2014 - 17:38:38 EST


There is otherwise a risk of a possible null pointer dereference.

Was largely found by using a static code analysis program called cppcheck.

Signed-off-by: Rickard Strandqvist <rickard_strandqvist@xxxxxxxxxxxxxxxxxx>
---
drivers/staging/unisys/virtpci/virtpci.c | 23 +++++++++--------------
1 file changed, 9 insertions(+), 14 deletions(-)

diff --git a/drivers/staging/unisys/virtpci/virtpci.c b/drivers/staging/unisys/virtpci/virtpci.c
index ee9f826..d818eda 100644
--- a/drivers/staging/unisys/virtpci/virtpci.c
+++ b/drivers/staging/unisys/virtpci/virtpci.c
@@ -1314,15 +1314,13 @@ static ssize_t virtpci_driver_attr_show(struct kobject *kobj,
ssize_t ret = 0;

struct driver_private *dprivate = to_driver(kobj);
- struct device_driver *driver;

- if (dprivate != NULL)
- driver = dprivate->driver;
- else
- driver = NULL;
+ if (dprivate) {
+ struct device_driver *driver = dprivate->driver;
+
+ DBGINF("In virtpci_driver_attr_show driver->name:%s\n",
+ driver->name);

- DBGINF("In virtpci_driver_attr_show driver->name:%s\n", driver->name);
- if (driver) {
if (dattr->show)
ret = dattr->show(driver, buf);
}
@@ -1337,16 +1335,13 @@ static ssize_t virtpci_driver_attr_store(struct kobject *kobj,
ssize_t ret = 0;

struct driver_private *dprivate = to_driver(kobj);
- struct device_driver *driver;

- if (dprivate != NULL)
- driver = dprivate->driver;
- else
- driver = NULL;
+ if (dprivate) {
+ struct device_driver *driver = dprivate->driver;

- DBGINF("In virtpci_driver_attr_store driver->name:%s\n", driver->name);
+ DBGINF("In virtpci_driver_attr_store driver->name:%s\n",
+ driver->name);

- if (driver) {
if (dattr->store)
ret = dattr->store(driver, buf, count);
}
--
1.7.10.4

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/