summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJulia Lawall <julia@diku.dk>2009-08-23 18:09:05 +0200
committerMartin Schwidefsky <schwidefsky@de.ibm.com>2009-08-23 18:10:00 +0200
commitcf05b824dbb871159e1b4c4f2733b9c9d2f756cf (patch)
tree0fa55852038849722150149da4ab418f96c945b3
parent[S390] cio: fix double free after failed device initialization (diff)
downloadlinux-cf05b824dbb871159e1b4c4f2733b9c9d2f756cf.tar.xz
linux-cf05b824dbb871159e1b4c4f2733b9c9d2f756cf.zip
[S390] drivers/s390: put NULL test before dereference
If the NULL test on block is needed, it should be before the dereference of the base field. The semantic match that finds this problem is as follows: (http://coccinelle.lip6.fr/) // <smpl> @r@ expression E1,E2; identifier fld; statement S1,S2; @@ E1 = E2->fld; ( if (E1 == NULL) S1 else S2 | *if (E2 == NULL) S1 else S2 ) // </smpl> Signed-off-by: Julia Lawall <julia@diku.dk> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
-rw-r--r--drivers/s390/block/dasd.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/s390/block/dasd.c b/drivers/s390/block/dasd.c
index 749836668655..3f62dd50bbbe 100644
--- a/drivers/s390/block/dasd.c
+++ b/drivers/s390/block/dasd.c
@@ -2135,9 +2135,9 @@ static int dasd_getgeo(struct block_device *bdev, struct hd_geometry *geo)
struct dasd_device *base;
block = bdev->bd_disk->private_data;
- base = block->base;
if (!block)
return -ENODEV;
+ base = block->base;
if (!base->discipline ||
!base->discipline->fill_geometry)