zlib's gzseek return gabbage and fails intermittently under wine.
Vincent Povirk
madewokherd at gmail.com
Sun Apr 14 17:01:47 CDT 2013
Well, here's a simple thing you can check: Does your zlib dll link to
_lseek or _lseeki64? The first one uses a 32-bit offset. Wine's
implementation (http://source.winehq.org/source/dlls/msvcrt/file.c#L1090)
expands that to 64-bit and later truncates the file offset to 32-bit.
For a file larger than 2 GB, that could account for the large negative
value you're seeing.
And since this would only matter in cases where zlib uses lseek (the
first time through I guess it wouldn't, as it has to read the whole
everything up to the offset you give at least once) and is at least 2
GB into the file, that might also explain why it doesn't fail
initially.
But without really digging into the zlib code, all I can do it speculate.
I should probably also check coapp's build of zlib sometime.
More information about the wine-devel
mailing list