]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
ovl: fix creds leak in copy up error path
authorAmir Goldstein <amir73il@gmail.com>
Tue, 16 May 2017 05:45:46 +0000 (08:45 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 14 Jun 2017 13:07:38 +0000 (15:07 +0200)
commit 8137ae26d25303e7b5cfb418fd28b976461e5b6e upstream.

Fixes: 42f269b92540 ("ovl: rearrange code in ovl_copy_up_locked()")
Signed-off-by: Amir Goldstein <amir73il@gmail.com>
Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
fs/overlayfs/copy_up.c

index 906ea6c93260179c9c4947abe97c35750162c3e3..5b14c16d1b771050bde2dfbb74a17b83259d9077 100644 (file)
@@ -269,12 +269,13 @@ static int ovl_copy_up_locked(struct dentry *workdir, struct dentry *upperdir,
                temp = ovl_do_tmpfile(upperdir, stat->mode);
        else
                temp = ovl_lookup_temp(workdir, dentry);
-       err = PTR_ERR(temp);
-       if (IS_ERR(temp))
-               goto out1;
-
        err = 0;
-       if (!tmpfile)
+       if (IS_ERR(temp)) {
+               err = PTR_ERR(temp);
+               temp = NULL;
+       }
+
+       if (!err && !tmpfile)
                err = ovl_create_real(wdir, temp, &cattr, NULL, true);
 
        if (new_creds) {