mirror of https://github.com/python/cpython.git
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. ;)
This commit is contained in:
parent
936e2f36ad
commit
c4ab9a4f1d
|
@ -1304,6 +1304,7 @@ audioop_ratecv_impl(PyModuleDef *module, Py_buffer *fragment, int width, int nch
|
||||||
"weightA should be >= 1, weightB should be >= 0");
|
"weightA should be >= 1, weightB should be >= 0");
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
assert(fragment->len >= 0);
|
||||||
if (fragment->len % bytes_per_frame != 0) {
|
if (fragment->len % bytes_per_frame != 0) {
|
||||||
PyErr_SetString(AudioopError, "not a whole number of frames");
|
PyErr_SetString(AudioopError, "not a whole number of frames");
|
||||||
return NULL;
|
return NULL;
|
||||||
|
@ -1370,7 +1371,7 @@ audioop_ratecv_impl(PyModuleDef *module, Py_buffer *fragment, int width, int nch
|
||||||
case ceiling(len/inrate) * outrate. */
|
case ceiling(len/inrate) * outrate. */
|
||||||
|
|
||||||
/* compute ceiling(len/inrate) without overflow */
|
/* 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)
|
if (outrate > PY_SSIZE_T_MAX / q / bytes_per_frame)
|
||||||
str = NULL;
|
str = NULL;
|
||||||
else
|
else
|
||||||
|
|
Loading…
Reference in New Issue