]> git.proxmox.com Git - mirror_ubuntu-zesty-kernel.git/blobdiff - fs/ext4/ialloc.c
bcm2835-v4l2: Fix buffer overflow problem
[mirror_ubuntu-zesty-kernel.git] / fs / ext4 / ialloc.c
index e57e8d90ea54a71745cf6257a7f1ef6437a0191b..7e855a662ef478bded5bbddea2f82e62a0817b0c 100644 (file)
@@ -764,6 +764,10 @@ struct inode *__ext4_new_inode(handle_t *handle, struct inode *dir,
        if (!dir || !dir->i_nlink)
                return ERR_PTR(-EPERM);
 
+       /* Supplied owner must be valid */
+       if (owner && (owner[0] == (uid_t)-1 || owner[1] == (uid_t)-1))
+               return ERR_PTR(-EOVERFLOW);
+
        if ((ext4_encrypted_inode(dir) ||
             DUMMY_ENCRYPTION_ENABLED(EXT4_SB(dir->i_sb))) &&
            (S_ISREG(mode) || S_ISDIR(mode) || S_ISLNK(mode))) {
@@ -806,7 +810,7 @@ struct inode *__ext4_new_inode(handle_t *handle, struct inode *dir,
            ext4_test_inode_flag(dir, EXT4_INODE_PROJINHERIT))
                ei->i_projid = EXT4_I(dir)->i_projid;
        else
-               ei->i_projid = make_kprojid(&init_user_ns, EXT4_DEF_PROJID);
+               ei->i_projid = make_kprojid(sb->s_user_ns, EXT4_DEF_PROJID);
 
        err = dquot_initialize(inode);
        if (err)