From: Colin Ian King <colin.k...@canonical.com>

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.k...@canonical.com>
---
 net/core/devlink.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/net/core/devlink.c b/net/core/devlink.c
index dd7d6dd07bfb..2b6b8eebcda3 100644
--- a/net/core/devlink.c
+++ b/net/core/devlink.c
@@ -3181,6 +3181,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;
                }
-- 
2.15.1

Reply via email to