Creating Compressed Loop FS from stdin

Maxim Sobolev 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.

-Maxim

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
>>>>soon.
>>>
>>>
>>>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 
>>backward.
> 
> 
> 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.
>>
>>-Maxim
>>
>>-------- 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
>>problem.
> 
> 
> 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?
> 
> G'luck,
> Peter
> 



More information about the freebsd-hackers mailing list