comparison contrib/python-zstandard/c-ext/compressor.c @ 30830:08fa3a76a080

zstd: prevent potential free() of uninitialized memory This is a cherry pick of an upstream fix. The free() of uninitialed memory could likely only occur if a malloc() inside zstd fails. The patched functions aren't currently used by Mercurial. But I don't like leaving footguns sitting around.
author Gregory Szorc <gregory.szorc@gmail.com>
date Tue, 17 Jan 2017 10:17:13 -0800
parents b54a2984cdd4
children c32454d69b85
comparison
equal deleted inserted replaced
30829:08b34c3a6f74 30830:08fa3a76a080
255 255
256 if (!PyObject_HasAttrString(dest, "write")) { 256 if (!PyObject_HasAttrString(dest, "write")) {
257 PyErr_SetString(PyExc_ValueError, "second argument must have a write() method"); 257 PyErr_SetString(PyExc_ValueError, "second argument must have a write() method");
258 return NULL; 258 return NULL;
259 } 259 }
260
261 /* Prevent free on uninitialized memory in finally. */
262 output.dst = NULL;
260 263
261 cstream = CStream_from_ZstdCompressor(self, sourceSize); 264 cstream = CStream_from_ZstdCompressor(self, sourceSize);
262 if (!cstream) { 265 if (!cstream) {
263 res = NULL; 266 res = NULL;
264 goto finally; 267 goto finally;