From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1044719AbdDWJxu (ORCPT ); Sun, 23 Apr 2017 05:53:50 -0400 Received: from m50-133.163.com ([123.125.50.133]:43901 "EHLO m50-133.163.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1044700AbdDWJxn (ORCPT ); Sun, 23 Apr 2017 05:53:43 -0400 From: Pan Bian To: Ian Abbott , H Hartley Sweeten , Greg Kroah-Hartman Cc: devel@driverdev.osuosl.org, linux-kernel@vger.kernel.org, Pan Bian Subject: [PATCH 1/1] staging: comedi: addi_apci_3xxx: check return value Date: Sun, 23 Apr 2017 17:52:55 +0800 Message-Id: <1492941175-9422-1-git-send-email-bianpan201602@163.com> X-Mailer: git-send-email 1.9.1 X-CM-TRANSID: DdGowADXDcp3efxYNDggAA--.532S3 X-Coremail-Antispam: 1Uf129KBjvdXoW7Xr43Wr43ZrWxXFWxJw45Awb_yoWDKrXEgF s2vF1xCrW2kFyfCr1aqF1fZryS9an0gr1kZwnFqay3Z3s8Za9rArykZFn5Xr1UurWxCFWq kr48uw4Fkr10kjkaLaAFLSUrUUUUUb8apTn2vfkv8UJUUUU8Yxn0WfASr-VFAUDa7-sFnT 9fnUUvcSsGvfC2KfnxnUUI43ZEXa7IU0e6wJUUUUU== X-Originating-IP: [123.118.194.153] X-CM-SenderInfo: held01tdqsiiqwqsqiywtou0bp/1tbiuBrC4FQG8nU8sgAAsb Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Pan Bian Function pci_ioremap_bar() will return a NULL pointer if there is no enough memory. However, in function apci3xxx_auto_attach(), the return value of function pci_ioremap_bar() is not validated. This may result in NULL dereference in following access to dev->mmio. This patch fixes the bug. Signed-off-by: Pan Bian --- drivers/staging/comedi/drivers/addi_apci_3xxx.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/staging/comedi/drivers/addi_apci_3xxx.c b/drivers/staging/comedi/drivers/addi_apci_3xxx.c index b6af3eb..a07d5bd 100644 --- a/drivers/staging/comedi/drivers/addi_apci_3xxx.c +++ b/drivers/staging/comedi/drivers/addi_apci_3xxx.c @@ -787,6 +787,8 @@ static int apci3xxx_auto_attach(struct comedi_device *dev, dev->iobase = pci_resource_start(pcidev, 2); dev->mmio = pci_ioremap_bar(pcidev, 3); + if (!dev->mmio) + return -ENOMEM; if (pcidev->irq > 0) { ret = request_irq(pcidev->irq, apci3xxx_irq_handler, -- 1.9.1