firmware: add missing kfree for work on async call
authorLuis R. Rodriguez <mcgrof@suse.com>
Fri, 29 May 2015 00:46:42 +0000 (17:46 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 1 Jun 2015 01:22:34 +0000 (10:22 +0900)
The recent fix to use kstrdup_const() failed to add a
kfree upon failure of name allocation...

Cc: Ming Lei <ming.lei@canonical.com>
Cc: Seth Forshee <seth.forshee@canonical.com>
Cc: Kyle McMartin <kyle@kernel.org>
Signed-off-by: Luis R. Rodriguez <mcgrof@suse.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/base/firmware_class.c

index 8c3aa3c..9c42883 100644 (file)
@@ -1307,8 +1307,10 @@ request_firmware_nowait(
 
        fw_work->module = module;
        fw_work->name = kstrdup_const(name, gfp);
-       if (!fw_work->name)
+       if (!fw_work->name) {
+               kfree(fw_work);
                return -ENOMEM;
+       }
        fw_work->device = device;
        fw_work->context = context;
        fw_work->cont = cont;