]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
Merge branch 'overlayfs-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mszer...
authorLinus Torvalds <torvalds@linux-foundation.org>
Sat, 31 Oct 2015 21:49:19 +0000 (14:49 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Sat, 31 Oct 2015 21:49:19 +0000 (14:49 -0700)
Pull overlayfs bug fixes from Miklos Szeredi:
 "This contains fixes for bugs that appeared in earlier kernels (all are
  marked for -stable)"

* 'overlayfs-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/vfs:
  ovl: free lower_mnt array in ovl_put_super
  ovl: free stack of paths in ovl_fill_super
  ovl: fix open in stacked overlay
  ovl: fix dentry reference leak
  ovl: use O_LARGEFILE in ovl_copy_up()

1  2 
fs/overlayfs/super.c

diff --combined fs/overlayfs/super.c
index 79073d68b475d71b0f87902550b3eeef945885b5,8d04b86e0680d7e3f4c7e895d0ad571a7ff5f4a2..e38ee0fed24a2f7a343f294a793b6abea93f6f97
@@@ -544,6 -544,7 +544,7 @@@ static void ovl_put_super(struct super_
        mntput(ufs->upper_mnt);
        for (i = 0; i < ufs->numlower; i++)
                mntput(ufs->lower_mnt[i]);
+       kfree(ufs->lower_mnt);
  
        kfree(ufs->config.lowerdir);
        kfree(ufs->config.upperdir);
@@@ -588,10 -589,10 +589,10 @@@ static int ovl_show_options(struct seq_
        struct super_block *sb = dentry->d_sb;
        struct ovl_fs *ufs = sb->s_fs_info;
  
 -      seq_printf(m, ",lowerdir=%s", ufs->config.lowerdir);
 +      seq_show_option(m, "lowerdir", ufs->config.lowerdir);
        if (ufs->config.upperdir) {
 -              seq_printf(m, ",upperdir=%s", ufs->config.upperdir);
 -              seq_printf(m, ",workdir=%s", ufs->config.workdir);
 +              seq_show_option(m, "upperdir", ufs->config.upperdir);
 +              seq_show_option(m, "workdir", ufs->config.workdir);
        }
        return 0;
  }
@@@ -1048,6 -1049,7 +1049,7 @@@ static int ovl_fill_super(struct super_
                oe->lowerstack[i].dentry = stack[i].dentry;
                oe->lowerstack[i].mnt = ufs->lower_mnt[i];
        }
+       kfree(stack);
  
        root_dentry->d_fsdata = oe;