[PATCH] drbd:fix null pointer deref in _drbd_md_sync_page_io

From: Heloise
Date: Wed Apr 26 2017 - 06:00:55 EST


The return value of bio_alloc_drbd can be NULL and is used without
validation, which may cause null-pointer dereference, fix it.

Signed-off-by: Heloise <os@xxxxxxxxxxx>
---
drivers/block/drbd/drbd_actlog.c | 4 ++++
1 file changed, 4 insertions(+)

diff --git a/drivers/block/drbd/drbd_actlog.c b/drivers/block/drbd/drbd_actlog.c
index 8d7bcfa..d6bb30e 100644
--- a/drivers/block/drbd/drbd_actlog.c
+++ b/drivers/block/drbd/drbd_actlog.c
@@ -151,6 +151,10 @@ static int _drbd_md_sync_page_io(struct drbd_device *device,
op_flags |= REQ_SYNC;

bio = bio_alloc_drbd(GFP_NOIO);
+ if (!bio) {
+ err = -ENOMEM;
+ return err;
+ }
bio->bi_bdev = bdev->md_bdev;
bio->bi_iter.bi_sector = sector;
err = -EIO;
--
2.1.0