bug-grub
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Problem with ISO9660 and files stored on multiple extents


From: Vladimir 'phcoder' Serbinenko
Subject: Re: Problem with ISO9660 and files stored on multiple extents
Date: Thu, 16 Feb 2017 13:09:48 +0000



On Thu, Feb 16, 2017, 14:04 Carlo Caione <address@hidden> wrote:
On Thu, Feb 16, 2017 at 12:37 PM, Carlo Caione <address@hidden> wrote:
> On Thu, Feb 16, 2017 at 12:32 PM, Thomas Schmitt <address@hidden> wrote:
>> Hi,
>>
>> Carlo Caione wrote:
>>> > I think that the problem
>>> > here is that endless.squash has been stored in two extents in the
>>> > ISO9660 and GRUB doesn't deal fine with that (also according to this
>>> > comment
>>> > http://git.savannah.gnu.org/cgit/grub.git/tree/grub-core/fs/iso9660.c#n960
>>
>> Andrei Borzenkov wrote:
>>> This comment could be stale and misleading.
>>
>> The code of read_node() in iso9660.c looks ready for multi-extent (aka ISO
>> level 3).
>>
>> I have a very densely compressed test ISO for large file support
>>    http://scdbackup.webframe.org/large.iso.bz2
>> which bunzip2 inflates from 4.5 KiB to 4+ GiB.
>
> Yeah, I made some more tests and apparently the problem is not in the
> ISO9660 module but in the SQUASH4 module.
> To be perfectly honest I have already a patch that solves my problem
> but I'm having a hard time to understand WHY it solves the issue since
> I'm still not really familiar with squashfs (I casually found it
> during my debugging).
> Of course probably it is only masking a problem somewhere else. Still digging.
>
> diff --git a/grub-core/fs/squash4.c b/grub-core/fs/squash4.c
> index b97b344..4fef813 100644
> --- a/grub-core/fs/squash4.c
> +++ b/grub-core/fs/squash4.c
> @@ -895,7 +895,7 @@ grub_squash_read_data (struct grub_squash_data *data,
>        break;
>      }
>
> -  if (fragment == 0xffffffff)
> +  if (fragment == 0xffffffff || fragment == 0)
>      return direct_read (data, ino, off, buf, len);
>
>    err = read_chunk (data, &frag, sizeof (frag),

Hey Vladimir,
Any idea about this?
How big is the file in question? What is the squash tools version?


--
Carlo Caione  |  +39.340.80.30.096  |  Endless

reply via email to

[Prev in Thread] Current Thread [Next in Thread]