Commit 785bc568 authored by Namjae Jeon's avatar Namjae Jeon
Browse files

ntfs: fix error handling in ntfs_write_iomap_end_resident()



When ntfs_attr_get_search_ctx() fails and returns NULL, the function
returned early without calling put_page(ipage).
Fix this by jumping to err_out label on error. The err_out path now
properly releases the page and the mutex, with a NULL check for
the search context.

Reported-by: default avatarDaeMyung Kang <charsyam@gmail.com>
Signed-off-by: default avatarNamjae Jeon <linkinjeon@kernel.org>
parent cad7c6f0
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -788,8 +788,7 @@ static int ntfs_write_iomap_end_resident(struct inode *inode, loff_t pos,
	ctx = ntfs_attr_get_search_ctx(ni, NULL);
	if (!ctx) {
		written = -ENOMEM;
		mutex_unlock(&ni->mrec_lock);
		return written;
		goto err_out;
	}

	err = ntfs_attr_lookup(ni->type, ni->name, ni->name_len,
@@ -810,6 +809,7 @@ static int ntfs_write_iomap_end_resident(struct inode *inode, loff_t pos,
	memcpy(kattr + pos, iomap_inline_data(iomap, pos), written);
	mark_mft_record_dirty(ctx->ntfs_ino);
err_out:
	if (ctx)
		ntfs_attr_put_search_ctx(ctx);
	put_page(ipage);
	mutex_unlock(&ni->mrec_lock);