Mercurial > public > mercurial-scm > hg
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; |