The newly introduced ovl_get_redirect() function returns an unintialized
variable when kmalloc() fails:

fs/overlayfs/dir.c: In function ‘ovl_set_redirect’:
fs/overlayfs/overlayfs.h:92:6: error: ‘ret’ may be used uninitialized in this 
function [-Werror=maybe-uninitialized]

This makes it return -ENOMEM instead.

Fixes: 496654b0792e ("ovl: redirect on rename-dir")
Signed-off-by: Arnd Bergmann <[email protected]>
---
 fs/overlayfs/dir.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/fs/overlayfs/dir.c b/fs/overlayfs/dir.c
index bc7c62c7a72f..fb9fce0112f0 100644
--- a/fs/overlayfs/dir.c
+++ b/fs/overlayfs/dir.c
@@ -798,8 +798,10 @@ static char *ovl_get_redirect(struct dentry *dentry, bool 
samedir)
        }
 
        buf = kmalloc(buflen, GFP_TEMPORARY);
-       if (!buf)
+       if (!buf) {
+               ret = ERR_PTR(-ENOMEM);
                goto out;
+       }
 
        buflen--;
        buf[buflen] = '\0';
-- 
2.9.0

Reply via email to