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 <arvind.yadav...@gmail.com> --- 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 -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html