From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Message-ID: <5270E27F.9080001@redhat.com> Date: Wed, 30 Oct 2013 11:42:07 +0100 From: Jerome Marchand MIME-Version: 1.0 To: Rashika Kheria CC: opw-kernel@googlegroups.com, Minchan Kim , Greg Kroah-Hartman , Jiang Liu , Nitin Gupta , Jerome Marchand , linux-kernel@vger.kernel.org, stable@vger.kernel.org Subject: Re: [PATCH v7 1/3] Staging: zram: Fix access of NULL pointer References: <20131019110539.GA25167@gmail.com> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: On 10/30/2013 12:10 AM, Rashika Kheria wrote: > This patch fixes the bug in reset_store caused by accessing NULL pointer. > > The bdev gets its value from bdget_disk() which could fail when memory > pressure is severe and hence can return NULL because allocation of > inode in bdget could fail. > > Hence, this patch introduces a check for bdev to prevent reference to a > NULL pointer in the later part of the code. It also removes unnecessary > check of bdev for fsync_bdev(). > > Cc: stable@vger.kernel.org > Signed-off-by: Rashika Kheria Acked-by: Jerome Marchand > --- > > This patch fixes the following issues of the previous revision- > Better Description > > drivers/staging/zram/zram_drv.c | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) > > diff --git a/drivers/staging/zram/zram_drv.c b/drivers/staging/zram/zram_drv.c > index 2c4ed52..d640a8f 100644 > --- a/drivers/staging/zram/zram_drv.c > +++ b/drivers/staging/zram/zram_drv.c > @@ -648,6 +648,9 @@ static ssize_t reset_store(struct device *dev, > zram = dev_to_zram(dev); > bdev = bdget_disk(zram->disk, 0); > > + if (!bdev) > + return -EBUSY; > + > /* Do not reset an active device! */ > if (bdev->bd_holders) > return -EBUSY; > @@ -660,8 +663,7 @@ static ssize_t reset_store(struct device *dev, > return -EINVAL; > > /* Make sure all pending I/O is finished */ > - if (bdev) > - fsync_bdev(bdev); > + fsync_bdev(bdev); > > zram_reset_device(zram, true); > return len; >