Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | [Bug 3386197]: Plug memory leak in unstacking of zlib transforms. |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
89ff730dfa2e144ceff4b4fe84765922 |
User & Date: | dkf 2011-08-04 23:12:30 |
Context
2011-08-05
| ||
00:00 | [Bug 3386197]: Fix buffer direction botch. Damn you, confusing terminology! check-in: d104ee18f9 user: dkf tags: trunk | |
2011-08-04
| ||
23:12 | [Bug 3386197]: Plug memory leak in unstacking of zlib transforms. check-in: 89ff730dfa user: dkf tags: trunk | |
18:40 | * generic/tclVar.c (TclPtrSetVar): fix valgrind-detected error when newValuePtr is the interp's resu... check-in: 8c944e4622 user: mig tags: trunk | |
Changes
Changes to ChangeLog.
1 2 | 2011-08-04 Miguel Sofer <[email protected]> | > > > > > | | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | 2011-08-05 Donal K. Fellows <[email protected]> * generic/tclZlib.c (ZlibTransformClose): [Bug 3386197]: Plug a memory leak found by Miguel with valgrind. 2011-08-04 Miguel Sofer <[email protected]> * generic/tclVar.c (TclPtrSetVar): Fix valgrind-detected error when newValuePtr is the interp's result obj. 2011-08-04 Donal K. Fellows <[email protected]> * generic/tclAssembly.c (FreeAssemblyEnv): [Bug 3384840]: Plug another possible memory leak due to over-complex code for freeing the table of labels. 2011-08-04 Reinhard Max <[email protected]> |
︙ | ︙ | |||
145 146 147 148 149 150 151 | 2011-07-08 Donal K. Fellows <[email protected]> * doc/http.n: [FRQ 3358415]: State what RFC defines HTTP/1.1. 2011-07-07 Miguel Sofer <[email protected]> | | | 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 | 2011-07-08 Donal K. Fellows <[email protected]> * doc/http.n: [FRQ 3358415]: State what RFC defines HTTP/1.1. 2011-07-07 Miguel Sofer <[email protected]> * generic/tclBasic.c: Add missing INT2PTR 2011-07-03 Donal K. Fellows <[email protected]> * doc/FileSystem.3: Corrected statements about ctime field of 'struct stat'; that was always the time of the last metadata change, not the time of creation. |
︙ | ︙ |
Changes to generic/tclZlib.c.
︙ | ︙ | |||
2249 2250 2251 2252 2253 2254 2255 2256 2257 2258 2259 2260 2261 2262 2263 | ZlibTransformClose( ClientData instanceData, Tcl_Interp *interp) { ZlibChannelData *cd = instanceData; int e, result = TCL_OK; ZlibTransformTimerKill(cd); if (cd->mode == TCL_ZLIB_STREAM_DEFLATE) { cd->outStream.avail_in = 0; do { cd->outStream.next_out = (Bytef *) cd->outBuffer; cd->outStream.avail_out = (unsigned) cd->outAllocated; e = deflate(&cd->outStream, Z_FINISH); if (e != Z_OK && e != Z_STREAM_END) { | > > > > > > > > > | 2249 2250 2251 2252 2253 2254 2255 2256 2257 2258 2259 2260 2261 2262 2263 2264 2265 2266 2267 2268 2269 2270 2271 2272 | ZlibTransformClose( ClientData instanceData, Tcl_Interp *interp) { ZlibChannelData *cd = instanceData; int e, result = TCL_OK; /* * Delete the support timer. */ ZlibTransformTimerKill(cd); /* * Flush any data waiting to be compressed. */ if (cd->mode == TCL_ZLIB_STREAM_DEFLATE) { cd->outStream.avail_in = 0; do { cd->outStream.next_out = (Bytef *) cd->outBuffer; cd->outStream.avail_out = (unsigned) cd->outAllocated; e = deflate(&cd->outStream, Z_FINISH); if (e != Z_OK && e != Z_STREAM_END) { |
︙ | ︙ | |||
2287 2288 2289 2290 2291 2292 2293 2294 2295 2296 2297 2298 2299 2300 2301 2302 2303 2304 2305 2306 2307 2308 | } } while (e != Z_STREAM_END); e = deflateEnd(&cd->inStream); } else { e = inflateEnd(&cd->outStream); } if (cd->inBuffer) { ckfree(cd->inBuffer); cd->inBuffer = NULL; } if (cd->outBuffer) { ckfree(cd->outBuffer); cd->outBuffer = NULL; } return result; } static int ZlibTransformInput( ClientData instanceData, char *buf, | > > > > > | 2296 2297 2298 2299 2300 2301 2302 2303 2304 2305 2306 2307 2308 2309 2310 2311 2312 2313 2314 2315 2316 2317 2318 2319 2320 2321 2322 | } } while (e != Z_STREAM_END); e = deflateEnd(&cd->inStream); } else { e = inflateEnd(&cd->outStream); } /* * Release all memory. */ if (cd->inBuffer) { ckfree(cd->inBuffer); cd->inBuffer = NULL; } if (cd->outBuffer) { ckfree(cd->outBuffer); cd->outBuffer = NULL; } ckfree(cd); return result; } static int ZlibTransformInput( ClientData instanceData, char *buf, |
︙ | ︙ |