| From: Jan Kara <jack@suse.cz> |
| Date: Mon, 11 Mar 2019 15:04:18 +0100 |
| Subject: udf: Fix crash on IO error during truncate |
| |
| commit d3ca4651d05c0ff7259d087d8c949bcf3e14fb46 upstream. |
| |
| When truncate(2) hits IO error when reading indirect extent block the |
| code just bugs with: |
| |
| kernel BUG at linux-4.15.0/fs/udf/truncate.c:249! |
| ... |
| |
| Fix the problem by bailing out cleanly in case of IO error. |
| |
| Reported-by: jean-luc malet <jeanluc.malet@gmail.com> |
| Signed-off-by: Jan Kara <jack@suse.cz> |
| Signed-off-by: Ben Hutchings <ben@decadent.org.uk> |
| --- |
| fs/udf/truncate.c | 3 +++ |
| 1 file changed, 3 insertions(+) |
| |
| --- a/fs/udf/truncate.c |
| +++ b/fs/udf/truncate.c |
| @@ -261,6 +261,9 @@ void udf_truncate_extents(struct inode * |
| epos.block = eloc; |
| epos.bh = udf_tread(sb, |
| udf_get_lb_pblock(sb, &eloc, 0)); |
| + /* Error reading indirect block? */ |
| + if (!epos.bh) |
| + return; |
| if (elen) |
| indirect_ext_len = |
| (elen + sb->s_blocksize - 1) >> |