There is an example program that triggers the main "sync-flush" bug attached to the bug report (I forget the id, but its fairly clearly labled in bug-tracking).
As for the others, it's quite hard to actualy trigger some of these, and some of them are violations of the zlib interface that may or may not actualy cause problems with the current version of zlib. I'll go through them in detail now;
Avoid repeat calls to (in|de)flateEnd: possably causes no problems with current version of zlib, but might in future releases. I haven't tested it, but if you really want I could whip something up that tests it.
Raises exception when allocating unused_data fails, fixes memory leak when allocating unused_data fails, raises exception when allocating decompress data failes; These are all only tiggerable when memory allocation fails.
Removes vistigial code from decompress flush; the fix to the main "sync-flush" bug ensures that decompress always returns all available data. This means that the decompress flush() can be simplified.
tidies code etc; these are just code cleanups...
|