[Debburn-devel] Possible bug in 4GiB filesize check

Frank Griffin ftg at roadrunner.com
Wed Jun 12 21:52:35 UTC 2013


On 06/12/2013 04:48 PM, Thomas Schmitt wrote:
> Hi,
>
>> fprintf(stderr, "File %s is larger than 4GiB-1.\n", whole_path);
> It seems that -iso-level 3 has no other effect than -iso-level 2.
>
> It should switch to multi-extent representation of files larger
> than 4 GiB - 1.

I think you have to use an explicit --option to get that to kick in.  
I'm already using --iso-level 3 and it doesn't.  But that's not really 
the point.  My system is already set up to fragment files manually in 
case the filesize exceeds the capacity of the volume (even a 25GB BR), 
so it just made sense to enforce the 4GiB-1 cap there.

>> so if you concur, the test operator should be changed to ">".
> Is it guaranteed in genisoimage's build software that off_t has
> 64 bit ?
> If not, then (lstatbuf.st_size > (off_t)0xFFFFFFFF) would never
> be true. The compiler would warn, but stat() should not report
> file sizes > 0xFFFFFFFF anyway. So it would be harmless noise.

That's a good point, but it probably argues for a platform-specific 
typedef, and the current code, as you say, won't work on systems with a 
32-bit off_t anyway.  It should probably be a size_t, which is unsigned 
by definition.

> -----
>
> I can offer xorriso's emulation of mkisofs: xorrisofs.
> It should suffice if you do not need UDF or HFS.
>
> It does ISO 9660 level 3 up to 400 GiB per file (a deliberate limit).

Thanks, but I intend this product to be multi-platform, so I'll just set 
the limit to 4GiB-2 for now.


> But you don't operate this by wodim, do you ? Have a nice day :) Thomas 

No, I don't call wodim directly.  I call growisofs which in turn calls 
genisoimage.

Thanks for your response.




More information about the Debburn-devel mailing list