Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932810AbcLHQcb (ORCPT ); Thu, 8 Dec 2016 11:32:31 -0500 Received: from mail-pg0-f65.google.com ([74.125.83.65]:35274 "EHLO mail-pg0-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753905AbcLHQc3 (ORCPT ); Thu, 8 Dec 2016 11:32:29 -0500 From: Arvind Yadav To: balbi@kernel.org, gregkh@linuxfoundation.org Cc: k.opasiak@samsung.com, mina86@mina86.com, i.kotrasinsk@samsung.com, linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [v1] usb:gadget:legacy:nokia :- Check for NULL in nokia_bind_config Date: Thu, 8 Dec 2016 22:02:13 +0530 Message-Id: <1481214733-8702-1-git-send-email-arvind.yadav.cs@gmail.com> X-Mailer: git-send-email 2.7.4 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1720 Lines: 61 Here, f_acm,f_ecm and f_msg needs to be checked for being NULL in nokia_bind_config() before calling usb_add_function(), otherwise kernel can run into a NULL-pointer dereference. f_phonet, f_obex1 and f_obex2 need to be checked for NULL in nokia_bind_config() to print proper debug information. Signed-off-by: Arvind Yadav --- drivers/usb/gadget/legacy/nokia.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/usb/gadget/legacy/nokia.c b/drivers/usb/gadget/legacy/nokia.c index b1e535f..d3ba286 100644 --- a/drivers/usb/gadget/legacy/nokia.c +++ b/drivers/usb/gadget/legacy/nokia.c @@ -159,36 +159,36 @@ static int nokia_bind_config(struct usb_configuration *c) if (!IS_ERR(fi_phonet)) { f_phonet = usb_get_function(fi_phonet); - if (IS_ERR(f_phonet)) + if (IS_ERR_OR_NULL(f_phonet)) pr_debug("could not get phonet function\n"); } if (!IS_ERR(fi_obex1)) { f_obex1 = usb_get_function(fi_obex1); - if (IS_ERR(f_obex1)) + if (IS_ERR_OR_NULL(f_obex1)) pr_debug("could not get obex function 0\n"); } if (!IS_ERR(fi_obex2)) { f_obex2 = usb_get_function(fi_obex2); - if (IS_ERR(f_obex2)) + if (IS_ERR_OR_NULL(f_obex2)) pr_debug("could not get obex function 1\n"); } f_acm = usb_get_function(fi_acm); - if (IS_ERR(f_acm)) { + if (IS_ERR_OR_NULL(f_acm)) { status = PTR_ERR(f_acm); goto err_get_acm; } f_ecm = usb_get_function(fi_ecm); - if (IS_ERR(f_ecm)) { + if (IS_ERR_OR_NULL(f_ecm)) { status = PTR_ERR(f_ecm); goto err_get_ecm; } f_msg = usb_get_function(fi_msg); - if (IS_ERR(f_msg)) { + if (IS_ERR_OR_NULL(f_msg)) { status = PTR_ERR(f_msg); goto err_get_msg; } -- 2.7.4