diff options
author | Thomas Wouters <thomas@python.org> | 2003-03-17 11:24:29 (GMT) |
---|---|---|
committer | Thomas Wouters <thomas@python.org> | 2003-03-17 11:24:29 (GMT) |
commit | 9e1c192525f0382ec1e8710c2f8e1dcef389ff77 (patch) | |
tree | 9587e0b075fa6b6589e5d4734005a6a9b4a8ac30 /Modules/binascii.c | |
parent | 450bd873ac9a7d44d24498b67cd111ce77334e85 (diff) | |
download | cpython-9e1c192525f0382ec1e8710c2f8e1dcef389ff77.zip cpython-9e1c192525f0382ec1e8710c2f8e1dcef389ff77.tar.gz cpython-9e1c192525f0382ec1e8710c2f8e1dcef389ff77.tar.bz2 |
binascii_a2b_base64: Properly return an empty string if the input was all
invalid, rather than returning a string of random garbage of the
estimated result length. Closes SF patch #703471 by Hye-Shik Chang.
Will backport to 2.2-maint (consider it done.)
Diffstat (limited to 'Modules/binascii.c')
-rw-r--r-- | Modules/binascii.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/Modules/binascii.c b/Modules/binascii.c index c56d528..05964c9 100644 --- a/Modules/binascii.c +++ b/Modules/binascii.c @@ -408,9 +408,16 @@ binascii_a2b_base64(PyObject *self, PyObject *args) return NULL; } - /* and set string size correctly */ + /* And set string size correctly. If the result string is empty + ** (because the input was all invalid) return the shared empty + ** string instead; _PyString_Resize() won't do this for us. + */ if (bin_len > 0) _PyString_Resize(&rv, bin_len); + else { + Py_DECREF(rv); + rv = PyString_FromString(""); + } return rv; } |