Mercurial > hg
comparison contrib/python-zstandard/c-ext/decompressor.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 | b86a448a2965 |
children | c32454d69b85 |
comparison
equal
deleted
inserted
replaced
30829:08b34c3a6f74 | 30830:08fa3a76a080 |
---|---|
162 | 162 |
163 if (!PyObject_HasAttrString(dest, "write")) { | 163 if (!PyObject_HasAttrString(dest, "write")) { |
164 PyErr_SetString(PyExc_ValueError, "second argument must have a write() method"); | 164 PyErr_SetString(PyExc_ValueError, "second argument must have a write() method"); |
165 return NULL; | 165 return NULL; |
166 } | 166 } |
167 | |
168 /* Prevent free on uninitialized memory in finally. */ | |
169 output.dst = NULL; | |
167 | 170 |
168 dstream = DStream_from_ZstdDecompressor(self); | 171 dstream = DStream_from_ZstdDecompressor(self); |
169 if (!dstream) { | 172 if (!dstream) { |
170 res = NULL; | 173 res = NULL; |
171 goto finally; | 174 goto finally; |