Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ebe73c0e authored by Jaegeuk Kim's avatar Jaegeuk Kim Committed by Sahitya Tummala
Browse files

f2fs: return error when accessing insane flie offset



commit adb6dc197187e2a5f5a7bed01e722f46a58676af upstream.

If file offset is insane, we have to return error instead of kernel panic.

Reported-by: default avatarEric Zhang <followme999@163.com>
Signed-off-by: default avatarJaegeuk Kim <jaegeuk@kernel.org>
Git-commit: 68842d7d
Git-repo: https://android.googlesource.com/kernel/common.git


Signed-off-by: default avatarSahitya Tummala <stummala@codeaurora.org>
parent b158e3c5
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -555,7 +555,7 @@ static int get_node_path(struct inode *inode, long block,
		level = 3;
		goto got;
	} else {
		BUG();
		return -E2BIG;
	}
got:
	return level;
@@ -579,6 +579,8 @@ int get_dnode_of_data(struct dnode_of_data *dn, pgoff_t index, int mode)
	int err = 0;

	level = get_node_path(dn->inode, index, offset, noffset);
	if (level < 0)
		return level;

	nids[0] = dn->inode->i_ino;
	npage[0] = dn->inode_page;
@@ -878,6 +880,8 @@ int truncate_inode_blocks(struct inode *inode, pgoff_t from)
	trace_f2fs_truncate_inode_blocks_enter(inode, from);

	level = get_node_path(inode, from, offset, noffset);
	if (level < 0)
		return level;

	page = get_node_page(sbi, inode->i_ino);
	if (IS_ERR(page)) {