In versaclock_get_name -ENOMEM is passed to ERR_PTR but nothing is
done with the value that this calculates which is obviously not the
intention of the code. This is confirmed by the code around where this
function is called.
Instead return the value from ERR_PTR.

This issue was found by Smatch.

Signed-off-by: Andrew Goodbody <[email protected]>
---
 drivers/clk/clk_versaclock.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/clk/clk_versaclock.c b/drivers/clk/clk_versaclock.c
index 9ccaf13d242..790ea4dbe82 100644
--- a/drivers/clk/clk_versaclock.c
+++ b/drivers/clk/clk_versaclock.c
@@ -850,7 +850,7 @@ static char *versaclock_get_name(const char *dev_name, 
const char *clk_name, int
 
        buf = malloc(length);
        if (!buf)
-               ERR_PTR(-ENOMEM);
+               return ERR_PTR(-ENOMEM);
 
        if (index < 0)
                snprintf(buf, length, "%s.%s", dev_name, clk_name);

-- 
2.39.5

Reply via email to