Creating Compressed Loop FS from stdin
sobomax at portaone.com
Thu Dec 30 06:20:31 PST 2004
You don't check return code of the second lseek - I bet it fails. This
probably leads to creation of seemingly valid loop fs (i.e. with valid
header), but filled with zeroes or some random junk.
Peter Pentchev wrote:
> On Thu, Dec 30, 2004 at 03:32:27PM +0200, Maxim Sobolev wrote:
>>Peter Pentchev wrote:
>>>On Thu, Dec 30, 2004 at 01:28:28PM +0100, Matteo Riondato wrote:
>>>>Il giorno Gio, 30-12-2004 alle 12:34 +0200, Peter Pentchev ha scritto:
>>>>>This could be fixed by the following patch. I'm CC'ing Maxim Sobolev,
>>>>>the author of mkuzip(8); Maxim, do you have any objections to this patch?
>>>>Thank you for the answer and fo the patch! I hope Maxim will commit it
>>>Actually, if Maxim has no objections, I could commit it myself.
>>>However, it would be totally understandable if he doesn't answer in
>>>the next day or three, what with the calendar moving ahead and all :)
>>It will not help, since AFAIK you can't seek stdin anyway, or even if I
>>am wrong and you can seek it to the end you will be unable to seek it
> I tested the patch before posting it, fully expecting to find that stdin
> really cannot be seeked (sought? :), and surprisingly it worked, at least
> on RELENG_5 as of today!
>>I've already replied to this message, but Matteo has some very strange
>>settings of his smtp relay so that neither my original message nor my
>>follow-up in which I had forwarded mail delivery error message got through.
>>-------- Original Message --------
>>Subject: Re: Creating Compressed Loop FS from stdin
>>Date: Fri, 17 Dec 2004 17:14:48 +0200
>>From: Maxim Sobolev <sobomax at portaone.com>
>>Organization: Porta Software Ltd
>>To: Matteo Riondato <rionda at freesbie.org>
>>References: <1103290915.8516.9.camel at kaiser.sig11.org>
>>This is not going to work by design unfortunately. cloop format has
>>serious design flaw: it contains variable-lengh header at the beginning
>>of the compressed image, so that before doing compression mkuzip(1) uses
>>stat(2) call at the original file to get its size and reserve necessary
>>space, which doesn't work with /dev/stdin as you may guess. Original GNU
>>utility either keeps the whole compressed image in memory or uses some
>>form of temporary storage (I don't quite remember) to work around this
> Well, another solution would be to make mkuzip use a temporary file
> (obviously, keeping the whole thing in memory would be a bad idea for
> big ISO filesystems ;). However, as I noted above, my lseek patch
> works at least for RELENG_5. Can somebody test it on -CURRENT?
More information about the freebsd-hackers