]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
usb: hub: Simplify error and success path in port_over_current_notify
authorBhuvanesh Surachari <Bhuvanesh_Surachari@mentor.com>
Thu, 12 May 2022 15:37:14 +0000 (17:37 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 19 May 2022 16:14:49 +0000 (18:14 +0200)
kasprintf() returns NULL or valid pointer. Since kfree() can handle
NULL pointer condition, simplify error and success paths in function
port_over_current_notify() by removing multiple error path labels.

Signed-off-by: Bhuvanesh Surachari <Bhuvanesh_Surachari@mentor.com>
Signed-off-by: Eugeniu Rosca <erosca@de.adit-jv.com>
Link: https://lore.kernel.org/r/1652369834-4480-1-git-send-email-erosca@de.adit-jv.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/core/hub.c

index 7781b2d31473c8e722d35a730f5ce9420a4eda56..68e9121c187882478500d8c362ffbbde41052faa 100644 (file)
@@ -5511,7 +5511,7 @@ static void hub_port_connect_change(struct usb_hub *hub, int port1,
 /* Handle notifying userspace about hub over-current events */
 static void port_over_current_notify(struct usb_port *port_dev)
 {
-       char *envp[3];
+       char *envp[3] = { NULL, NULL, NULL };
        struct device *hub_dev;
        char *port_dev_path;
 
@@ -5528,20 +5528,18 @@ static void port_over_current_notify(struct usb_port *port_dev)
 
        envp[0] = kasprintf(GFP_KERNEL, "OVER_CURRENT_PORT=%s", port_dev_path);
        if (!envp[0])
-               goto exit_path;
+               goto exit;
 
        envp[1] = kasprintf(GFP_KERNEL, "OVER_CURRENT_COUNT=%u",
                        port_dev->over_current_count);
        if (!envp[1])
                goto exit;
 
-       envp[2] = NULL;
        kobject_uevent_env(&hub_dev->kobj, KOBJ_CHANGE, envp);
 
-       kfree(envp[1]);
 exit:
+       kfree(envp[1]);
        kfree(envp[0]);
-exit_path:
        kfree(port_dev_path);
 }