You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This patch fixes the zlib decompress sync flush bug as reported in bug tracking.
It also fixes the following minor bugs;
avoids repeat calls to (in|de)flateEnd when destroying (de)compression objects
raises exception when allocating unused_data fails
fixes memory leak when allocating unused_data fails
raises exception when allocating decompress data fails
removes vestigial code from decompress flush now decompression returns all available data.
tidies code so object compress/decompress/flush routines are consistant
Argh... my line by line fix list got munged. You'll have to apply imaginary comments to delimit each fix.
The bug this fixes is 124981 "zlib decompress of sync-flushed data fails"
A lot of the patch changes are simply whitespace changes to clean up the formating. The patch can probably be edited to only include the changes to the PyZlib_objdecompress routine to fix the most important bug, but this would leave the code even more inconsistant than it is. Most of the rest of the fixes are to make the other routines cleaner, though they do also fix the minor bugs mentioned.
Can you provide a test program that will demonstrate some of the bugs
this patch fixes? I'd like to be able to do a before-and-after comparison.
dbaarda commented on Feb 17, 2001
dbaardamannequin
MannequinAuthor
More actions
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.
Activity
dbaarda commentedon Jan 23, 2001
This patch fixes the zlib decompress sync flush bug as reported in bug tracking.
It also fixes the following minor bugs;
avoids repeat calls to (in|de)flateEnd when destroying (de)compression objects
raises exception when allocating unused_data fails
fixes memory leak when allocating unused_data fails
raises exception when allocating decompress data fails
removes vestigial code from decompress flush now decompression returns all available data.
tidies code so object compress/decompress/flush routines are consistant
nobody commentedon Jan 23, 2001
Argh... my line by line fix list got munged. You'll have to apply imaginary comments to delimit each fix.
The bug this fixes is 124981 "zlib decompress of sync-flushed data fails"
A lot of the patch changes are simply whitespace changes to clean up the formating. The patch can probably be edited to only include the changes to the PyZlib_objdecompress routine to fix the most important bug, but this would leave the code even more inconsistant than it is. Most of the rest of the fixes are to make the other routines cleaner, though they do also fix the minor bugs mentioned.
akuchling commentedon Feb 17, 2001
Can you provide a test program that will demonstrate some of the bugs
this patch fixes? I'd like to be able to do a before-and-after comparison.
dbaarda commentedon Feb 17, 2001
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...
akuchling commentedon Feb 21, 2001
Checked in to revision 2.39 of zlibmodule.c (at long last); thanks!