Fix bug with copying z_stream objects around in zip archiver (thanks, Andrei!).
zlib expects us to use inflateCopy() to move a z_stream, then inflateEnd() the original, and apparently fails in later versions if you just try to memcpy() it. This is only a bug in the stable-2.0 and stable-1.0 branches; we replaced zlib with miniz on the development branch, which doesn't have this requirement (or an inflateCopy() function at all!). (transplanted from 090cb9c74b87198e6d520afca9d649ca0d84669f)
This commit is contained in:
parent
77f939cb43
commit
c65c196152
|
@ -368,7 +368,8 @@ static int ZIP_seek(FileHandle *handle, PHYSFS_uint64 offset)
|
|||
return(0);
|
||||
|
||||
inflateEnd(&finfo->stream);
|
||||
memcpy(&finfo->stream, &str, sizeof (z_stream));
|
||||
inflateCopy(&finfo->stream, &str);
|
||||
inflateEnd(&str);
|
||||
finfo->uncompressed_position = finfo->compressed_position = 0;
|
||||
} /* if */
|
||||
|
||||
|
|
Loading…
Reference in New Issue