mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-30 11:41:38 -04:00
udf: Allow volume descriptor sequence to be terminated by unrecorded block
According to ECMA-167 3/8.4.2 a volume descriptor sequence can be terminated also by an unrecorded block within the extent of volume descriptor sequence. Currently we errored out in such case making such volumes unmountable. Handle that case by treating any invalid block as a block terminating the sequence. Reported-by: Pali Rohár <[email protected]> Acked-by: Pali Rohár <[email protected]> Signed-off-by: Jan Kara <[email protected]>
This commit is contained in:
parent
7b568cba4f
commit
67621675e9
1 changed files with 2 additions and 6 deletions
|
|
@ -1627,12 +1627,8 @@ static noinline int udf_process_sequence(
|
|||
for (; (!done && block <= lastblock); block++) {
|
||||
|
||||
bh = udf_read_tagged(sb, block, block, &ident);
|
||||
if (!bh) {
|
||||
udf_err(sb,
|
||||
"Block %llu of volume descriptor sequence is corrupted or we could not read it\n",
|
||||
(unsigned long long)block);
|
||||
return -EAGAIN;
|
||||
}
|
||||
if (!bh)
|
||||
break;
|
||||
|
||||
/* Process each descriptor (ISO 13346 3/8.3-8.4) */
|
||||
gd = (struct generic_desc *)bh->b_data;
|
||||
|
|
|
|||
Loading…
Reference in a new issue