diff options
-rw-r--r-- | Modules/audioop.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/Modules/audioop.c b/Modules/audioop.c index 471f851..fc33bcd 100644 --- a/Modules/audioop.c +++ b/Modules/audioop.c @@ -1039,8 +1039,13 @@ audioop_ratecv(self, args) cur_i[chan])); if (PyErr_Occurred()) return NULL; - if (_PyString_Resize(&str, - ncp - PyString_AsString(str)) < 0) + len = ncp - PyString_AsString(str); + if (len == 0) { + /*don't want to resize to zero length*/ + rv = PyString_FromStringAndSize("", 0); + Py_DECREF(str); + str = rv; + } else if (_PyString_Resize(&str, len) < 0) return NULL; rv = Py_BuildValue("(O(iO))", str, d, samps); Py_DECREF(samps); |