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 <[email protected]>
---
 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


Reply via email to