Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp1193189imu; Fri, 9 Nov 2018 12:26:17 -0800 (PST) X-Google-Smtp-Source: AJdET5fy+bZrhrdqtb3L8OT4QH1NgfnL2axAkXOJ1GGiI6UoOKQBQ/EylYzhfBAMIid7jMwk7PF9 X-Received: by 2002:a17:902:244:: with SMTP id 62-v6mr10472020plc.280.1541795177554; Fri, 09 Nov 2018 12:26:17 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1541795177; cv=none; d=google.com; s=arc-20160816; b=LgkyOM/SuQIbmzUPCP9Bau1Wev9cj5iGR8tH627k3wUoy7/whkNgivItZSkBmiHwwm h1TC4E6mySe1ie+pVM4phEcRKSCIf20eXEGR9xti5SXlXz7OMltoLYLLAzu2iCw3ejxS rsC2noWFoZcF3lAtUjsZ/ldFcS2/ii/ooL57hJenz92QPw3ryMMVxPogas9JUtUb5n0W nSkFoORsRTr4XPtlEDvXZWEvlH4SmhcJyvB+GqeLQwFeZkmM93YL3CQ5g3Yj1GAB/jgu el8AlxJwSv7AcPU+5dh0iUs5Goob3zLRMNlAFZaL9Oi3G5Lp3lPCEZYqybSkiWaQC7jd C7ZA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from; bh=ZKO2AL24W30RBXd1xVpTK9SdFO7I2z+X36kevIgeUck=; b=AirzuuHmaxTXwUg8pFnZYpO7AfGITKM+bFHpmJk2TnKbCdb5YkoObj2D4TGdaaRCqb IPWlbkDIQR1U/FakcwUH/kr7FFeANOm7XiATlvTtMnAnpyhpO6RdQ1if8UTCHjHiii2Y kp5gineplJxWu/lBCySGuKc1C+g0EfTTyhUUMC80pAriRdSoKwJGNlg19HX+epmRRR82 sqsAvL1fpmJYuAIwvCuxviNAHFaqDicdsLtlnY35bwJ5+WMuXn0IOjpwihdXRDhcmICA Rg0AjzsmAqIfyyrEp8V6fksTIf/Tf4ZydVkRKoTxQ9Rm08gBQxibycMA1ztakgWxzFRs IO7w== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id w22-v6si7312454pgk.214.2018.11.09.12.26.01; Fri, 09 Nov 2018 12:26:17 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726970AbeKJGHd (ORCPT + 99 others); Sat, 10 Nov 2018 01:07:33 -0500 Received: from mail.ispras.ru ([83.149.199.45]:37656 "EHLO mail.ispras.ru" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725799AbeKJGHd (ORCPT ); Sat, 10 Nov 2018 01:07:33 -0500 Received: from localhost.localdomain (unknown [85.140.188.106]) by mail.ispras.ru (Postfix) with ESMTPSA id 438155400FB; Fri, 9 Nov 2018 23:25:20 +0300 (MSK) From: Alexey Khoroshilov To: Mikulas Patocka , Bernie Thompson , Bartlomiej Zolnierkiewicz Cc: Alexey Khoroshilov , linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, ldv-project@linuxtesting.org Subject: [PATCH] udlfb: fix NULL pointer dereference in dlfb_usb_probe() Date: Fri, 9 Nov 2018 23:25:10 +0300 Message-Id: <1541795110-3179-1-git-send-email-khoroshilov@ispras.ru> X-Mailer: git-send-email 2.7.4 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org If memory allocation for dlfb fails, error handling code unconditionally dereference NULL pointer. Found by Linux Driver Verification project (linuxtesting.org). Signed-off-by: Alexey Khoroshilov Fixes: 68a958a915ca ("udlfb: handle unplug properly") --- drivers/video/fbdev/udlfb.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/video/fbdev/udlfb.c b/drivers/video/fbdev/udlfb.c index 070026a7e55a..9643fe7c8349 100644 --- a/drivers/video/fbdev/udlfb.c +++ b/drivers/video/fbdev/udlfb.c @@ -1590,7 +1590,7 @@ static int dlfb_usb_probe(struct usb_interface *intf, int i; const struct device_attribute *attr; struct dlfb_data *dlfb; - struct fb_info *info; + struct fb_info *info = NULL; int retval = -ENOMEM; struct usb_device *usbdev = interface_to_usbdev(intf); @@ -1701,8 +1701,8 @@ static int dlfb_usb_probe(struct usb_interface *intf, return 0; error: - if (dlfb->info) { - dlfb_ops_destroy(dlfb->info); + if (info) { + dlfb_ops_destroy(info); } else if (dlfb) { usb_put_dev(dlfb->udev); kfree(dlfb); -- 2.7.4