OSDN Git Service

misc: ti-st: Fix memory leak in the error path of probe()
authorAnton Vasilyev <vasilyev@ispras.ru>
Fri, 27 Jul 2018 15:45:36 +0000 (18:45 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 19 Sep 2018 20:48:57 +0000 (22:48 +0200)
[ Upstream commit 81ae962d7f180c0092859440c82996cccb254976 ]

Free resources instead of direct return of the error code if kim_probe
fails.

Found by Linux Driver Verification project (linuxtesting.org).

Signed-off-by: Anton Vasilyev <vasilyev@ispras.ru>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/misc/ti-st/st_kim.c

index 71b6455..a1bca83 100644 (file)
@@ -757,14 +757,14 @@ static int kim_probe(struct platform_device *pdev)
        err = gpio_request(kim_gdata->nshutdown, "kim");
        if (unlikely(err)) {
                pr_err(" gpio %d request failed ", kim_gdata->nshutdown);
-               return err;
+               goto err_sysfs_group;
        }
 
        /* Configure nShutdown GPIO as output=0 */
        err = gpio_direction_output(kim_gdata->nshutdown, 0);
        if (unlikely(err)) {
                pr_err(" unable to configure gpio %d", kim_gdata->nshutdown);
-               return err;
+               goto err_sysfs_group;
        }
        /* get reference of pdev for request_firmware
         */