]> git.baikalelectronics.ru Git - kernel.git/commit
ext4: fix argument checking in EXT4_IOC_MOVE_EXT
authorTheodore Ts'o <tytso@mit.edu>
Tue, 2 Oct 2018 05:34:44 +0000 (01:34 -0400)
committerTheodore Ts'o <tytso@mit.edu>
Tue, 2 Oct 2018 05:34:44 +0000 (01:34 -0400)
commit3f46f9e6848a738954802b4bc47ec63ba4963d33
tree1189b817303ef9975b42e768fce78ed59bceee54
parenteb25984968058f7487276761f04cd5e615dcb6fd
ext4: fix argument checking in EXT4_IOC_MOVE_EXT

If the starting block number of either the source or destination file
exceeds the EOF, EXT4_IOC_MOVE_EXT should return EINVAL.

Also fixed the helper function mext_check_coverage() so that if the
logical block is beyond EOF, make it return immediately, instead of
looping until the block number wraps all the away around.  This takes
long enough that if there are multiple threads trying to do pound on
an the same inode doing non-sensical things, it can end up triggering
the kernel's soft lockup detector.

Reported-by: syzbot+c61979f6f2cba5cb3c06@syzkaller.appspotmail.com
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Cc: stable@kernel.org
fs/ext4/move_extent.c