devlink: fix memory leak on 'resource'
authorColin Ian King <colin.king@canonical.com>
Mon, 22 Jan 2018 10:31:19 +0000 (10:31 +0000)
committerDavid S. Miller <davem@davemloft.net>
Mon, 22 Jan 2018 14:27:10 +0000 (09:27 -0500)
Currently, if the call to devlink_resource_find returns null then
the error exit path does not free the devlink_resource 'resource'
and a memory leak occurs. Fix this by kfree'ing resource on the
error exit path.

Detected by CoverityScan, CID#1464184 ("Resource leak")

Fixes: d9f9b9a4d05f ("devlink: Add support for resource abstraction")
Signed-off-by: Colin Ian King <colin.king@canonical.com>
Acked-by: Jiri Pirko <jiri@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/core/devlink.c

index 66d36705fb9dba2697688afbdf82d102fbbf5e87..18d385ed82370a7b6a9a2e31023b785a054e9e9f 100644 (file)
@@ -3182,6 +3182,7 @@ int devlink_resource_register(struct devlink *devlink,
                        resource_list = &parent_resource->resource_list;
                        resource->parent = parent_resource;
                } else {
+                       kfree(resource);
                        err = -EINVAL;
                        goto out;
                }