|
From: | Pete Batard |
Subject: | Re: [Libcdio-devel] udf_read_sectors cannot handle offsets past 2 GB |
Date: | Tue, 24 Jan 2012 23:48:53 +0000 |
User-agent: | Mozilla/5.0 (Windows NT 6.1; WOW64; rv:9.0) Gecko/20111222 Thunderbird/9.0.1 |
On 2012.01.24 21:15, Pete Batard wrote:
I just ran a test on an ARM based Linux platform (a Sheevaplug running ArmedSlack), that has LFS support, but a lot of the extracted files are getting corrupted, such as /sources/readme.rtf (should be mostly ASCII text). Many others, such as the > 4GB install.wim, seem to be fine though, and I also haven't observed any corruption on x86 so far.
Looks like this occurs when a platform has LFS (=>64 bit off_t) but fseeko was not detected.
For some reason on the ARM machine, even as it is available and _FILE_OFFSET_BITS is set to 64, fseeko was not detected. I am able to reproduce the issue on cygwin as well, where off_t is 64 bit by default (at least on x64 Windows) whereas autoconf doesn't detect any LFS settings
I guess that explains why any file past the 2 GB mark in the stream would get corrupted, but I'm not sure I understand why the 4.25GB install.wim still seemed OK...
If one forces HAVE_FSEEKO, then the files are back to normal on all platforms.
I'll try to produce a patch to avoid the issue. Regards, /Pete
[Prev in Thread] | Current Thread | [Next in Thread] |