Path: csiph.com!weretis.net!feeder4.news.weretis.net!news.mixmin.net!aioe.org!bofh.it!news.nic.it!robomod From: Heloise Newsgroups: linux.kernel Subject: [PATCH] drbd:fix null pointer deref in _drbd_md_sync_page_io Date: Wed, 26 Apr 2017 12:10:01 +0200 Message-ID: Dkim-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=163.com; s=s110527; h=From:Subject:Date:Message-Id; bh=1Pml8ExUhPK31bFuZc 0ngJgc+c5kPisJmGH+wRrEPms=; b=qJ/Q7M82NzynHMnZnJy8CIno9nZtCxmMty dtjhHlApKBW4vGwjrr0Yj3FCEhDP1wrnSYVwQ9pP94L2eQMSwcD4NFtsmOev4F9f moLXt/hc4ZePGZEOmXlNoIE0cbyRBBcZ7g5SDkwMPaEvPx6VPSwt+nh3TYc/IkX9 Pxcudwj6s= X-Mailer: git-send-email 2.1.0 X-Cm-Transid: EsCowAC3g72qbwBZJtXRAg--.37502S2 X-Coremail-Antispam: 1Uf129KBjvdXoWrKryfKw45Cw45AF47Gr1xZrb_yoW3XrgEkF 4xXrnrXr1kKr1Skr1j9345Zr9Yka18XFyxZr43tFn3Ca47XF42qrnrurn8Aws8W348Ga1v k3ZIqr1Igrn2gjkaLaAFLSUrUUUUUb8apTn2vfkv8UJUUUU8Yxn0WfASr-VFAUDa7-sFnT 9fnUUvcSsGvfC2KfnxnUUI43ZEXa7IUnGsjUUUUUU== X-Originating-IP: [124.16.139.198] X-Cm-Senderinfo: xnhu0vxosd3uhkbx1vxdwhqiywtou0bp/xtbBSQrFglaDtqfZ9gAAsv Sender: robomod@news.nic.it List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Approved: robomod@news.nic.it Lines: 25 Organization: linux.* mail to news gateway X-Original-Cc: drbd-dev@lists.linbit.com, linux-kernel@vger.kernel.org, Heloise X-Original-Date: Wed, 26 Apr 2017 02:49:37 -0700 X-Original-Message-ID: <1493200177-10699-1-git-send-email-os@iscas.ac.cn> X-Original-Sender: linux-kernel-owner@vger.kernel.org Xref: csiph.com linux.kernel:1631339 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 --- 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