Commit 09054264 authored by Dan Carpenter's avatar Dan Carpenter Committed by Theodore Ts'o

ext4: Fix NULL dereference in ext4_ext_migrate()'s error handling

This was found through a code checker (http://repo.or.cz/w/smatch.git/). 
It looks like you might be able to trigger the error by trying to migrate 
a readonly file system.
Signed-off-by: default avatarDan Carpenter <error27@gmail.com>
Signed-off-by: default avatar"Theodore Ts'o" <tytso@mit.edu>
parent 2acf2c26
...@@ -481,7 +481,7 @@ int ext4_ext_migrate(struct inode *inode) ...@@ -481,7 +481,7 @@ int ext4_ext_migrate(struct inode *inode)
+ 1); + 1);
if (IS_ERR(handle)) { if (IS_ERR(handle)) {
retval = PTR_ERR(handle); retval = PTR_ERR(handle);
goto err_out; return retval;
} }
tmp_inode = ext4_new_inode(handle, tmp_inode = ext4_new_inode(handle,
inode->i_sb->s_root->d_inode, inode->i_sb->s_root->d_inode,
...@@ -489,8 +489,7 @@ int ext4_ext_migrate(struct inode *inode) ...@@ -489,8 +489,7 @@ int ext4_ext_migrate(struct inode *inode)
if (IS_ERR(tmp_inode)) { if (IS_ERR(tmp_inode)) {
retval = -ENOMEM; retval = -ENOMEM;
ext4_journal_stop(handle); ext4_journal_stop(handle);
tmp_inode = NULL; return retval;
goto err_out;
} }
i_size_write(tmp_inode, i_size_read(inode)); i_size_write(tmp_inode, i_size_read(inode));
/* /*
...@@ -618,8 +617,7 @@ int ext4_ext_migrate(struct inode *inode) ...@@ -618,8 +617,7 @@ int ext4_ext_migrate(struct inode *inode)
ext4_journal_stop(handle); ext4_journal_stop(handle);
if (tmp_inode) iput(tmp_inode);
iput(tmp_inode);
return retval; return retval;
} }
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment