Re: Bug in UDF, setting larger file size when data in ICB

From: Ian Abbott
Date: Mon Jul 23 2012 - 12:43:35 EST


On 2012-07-23 16:19, Ian Abbott wrote:
Hi folks,

in fs/udf/inode.c, udf_setsize(), if the new size is larger than the old
size and the old data is in the ICB and the new size still fits in the
ICB (iinfo->i_alloc_type == ICBTAG_FLAG_AD_IN_ICB and iinfo->i_lenAlloc
= newsize), udf_extend_file() is called which promptly calls BUG()
because it does not like this i_alloc_type value.

I think the simplest fix would be to add a 'goto' after the assignment
to iinfo->i_lenAlloc, bypassing the call to udf_extend_file().

Jan is on vacation until early August, so I submitted my own patch:

Date: Mon, 23 Jul 2012 17:39:29 +0100
Subject: [PATCH] udf: fix udf_setsize() for file data in ICB
Message-ID: <1343061569-3629-1-git-send-email-abbotti@xxxxxxxxx>

--
-=( Ian Abbott @ MEV Ltd. E-mail: <abbotti@xxxxxxxxx> )=-
-=( Tel: +44 (0)161 477 1898 FAX: +44 (0)161 718 3587 )=-


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/