Tcl Source Code

View Ticket
Login
Ticket UUID: b26e38a3e4546b01e3d12d0d7df8f69b52d869b3
Title: zlib stream buffer flushing failure
Type: Bug Version: 8.6.6, trunk
Submitter: dkf Created on: 2016-10-29 20:47:12
Subsystem: 57. zlib Assigned To: dkf
Priority: 8 Severity: Important
Status: Closed Last Modified: 2016-10-30 05:10:39
Resolution: Fixed Closed By: dkf
    Closed on: 2016-10-30 05:10:39
Description:

Tk issue 10f2e7872b reports that PNG writing is broken. It turns out this is because when a zlib-internal buffer in the streaming engine is entirely full, it is not always transferred to the output buffer. The bug was triggered on the Tk side by a change in the pattern of bytes generated, but the bug is in Tcl.

Fortunately, the streaming engine is exposed to Tcl so we can easily test it.

User Comments: dkf added on 2016-10-30 05:10:39:
Fixed on 8.6 and trunk.

dkf added on 2016-10-29 20:54:08:

The major issue to learn from this is to be ultra-careful when reading someone else's documentation. The zlib library's documentation (in the zlib.h header) is correct, but it all works in a totally different way to Tcl's API, making it very easy to miss important things that only get seen with large real data. Small data of the sort one usually tests with just works…