changeset: 88741:bf52f2dbfdde user: Christian Heimes date: Mon Jan 27 01:12:00 2014 +0100 files: Modules/audioop.c description: Issue #20394: Attempt to silence CID 1164423: Division or modulo by zero in audioop_ratecv_impl() Serhiy and I had the same idea so it's most likely right. ;) diff -r c2e425a05d35 -r bf52f2dbfdde Modules/audioop.c --- a/Modules/audioop.c Mon Jan 27 01:06:57 2014 +0100 +++ b/Modules/audioop.c Mon Jan 27 01:12:00 2014 +0100 @@ -1304,6 +1304,7 @@ "weightA should be >= 1, weightB should be >= 0"); return NULL; } + assert(fragment->len >= 0); if (fragment->len % bytes_per_frame != 0) { PyErr_SetString(AudioopError, "not a whole number of frames"); return NULL; @@ -1370,7 +1371,7 @@ case ceiling(len/inrate) * outrate. */ /* compute ceiling(len/inrate) without overflow */ - Py_ssize_t q = len > 0 ? 1 + (len - 1) / inrate : 0; + Py_ssize_t q = 1 + (len - 1) / inrate; if (outrate > PY_SSIZE_T_MAX / q / bytes_per_frame) str = NULL; else