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

From: Ian Abbott
Date: Mon Jul 23 2012 - 11:19:35 EST

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().

-=( 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/