mirror of https://gitee.com/openkylin/linux.git
ext4: add missing error check in __ext4_new_inode()
It's possible for ext4_get_acl() to return an ERR_PTR. So we need to add a check for this case in __ext4_new_inode(). Otherwise on an error we can end up oops the kernel. This was getting triggered by xfstests generic/388, which is a test which exercises the shutdown code path. Signed-off-by: Theodore Ts'o <tytso@mit.edu> Cc: stable@vger.kernel.org
This commit is contained in:
parent
c894aa9757
commit
996fc4477a
|
@ -816,6 +816,8 @@ struct inode *__ext4_new_inode(handle_t *handle, struct inode *dir,
|
||||||
#ifdef CONFIG_EXT4_FS_POSIX_ACL
|
#ifdef CONFIG_EXT4_FS_POSIX_ACL
|
||||||
struct posix_acl *p = get_acl(dir, ACL_TYPE_DEFAULT);
|
struct posix_acl *p = get_acl(dir, ACL_TYPE_DEFAULT);
|
||||||
|
|
||||||
|
if (IS_ERR(p))
|
||||||
|
return ERR_CAST(p);
|
||||||
if (p) {
|
if (p) {
|
||||||
int acl_size = p->a_count * sizeof(ext4_acl_entry);
|
int acl_size = p->a_count * sizeof(ext4_acl_entry);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue