]> www.infradead.org Git - users/willy/linux.git/commitdiff
interconnect: Handle memory allocation errors
authorGeorgi Djakov <georgi.djakov@linaro.org>
Wed, 26 Feb 2020 11:04:20 +0000 (13:04 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 3 Mar 2020 07:02:57 +0000 (08:02 +0100)
When we allocate memory, kasprintf() can fail and we must check its
return value.

Fixes: 05309830e1f8 ("interconnect: Add a name to struct icc_path")
Signed-off-by: Georgi Djakov <georgi.djakov@linaro.org>
Link: https://lore.kernel.org/r/20200226110420.5357-2-georgi.djakov@linaro.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/interconnect/core.c

index f277e467156f759de71af874557be07dfaa3e25b..2c6515e3ecf13ee9dfad6af55037bbb9f4e9bd97 100644 (file)
@@ -445,6 +445,11 @@ struct icc_path *of_icc_get(struct device *dev, const char *name)
                path->name = kasprintf(GFP_KERNEL, "%s-%s",
                                       src_node->name, dst_node->name);
 
+       if (!path->name) {
+               kfree(path);
+               return ERR_PTR(-ENOMEM);
+       }
+
        return path;
 }
 EXPORT_SYMBOL_GPL(of_icc_get);
@@ -579,6 +584,10 @@ struct icc_path *icc_get(struct device *dev, const int src_id, const int dst_id)
        }
 
        path->name = kasprintf(GFP_KERNEL, "%s-%s", src->name, dst->name);
+       if (!path->name) {
+               kfree(path);
+               path = ERR_PTR(-ENOMEM);
+       }
 out:
        mutex_unlock(&icc_lock);
        return path;