[issue20394] Coverity complains on audioop

Serhiy Storchaka report at bugs.python.org
Sun Jan 26 08:35:21 CET 2014


New submission from Serhiy Storchaka:

Christian Heimes reported (http://permalink.gmane.org/gmane.comp.python.devel/145253) Coverity issue:

"""
** CID 1164423:  Division or modulo by zero  (DIVIDE_BY_ZERO)
/Modules/audioop.c: 1375 in audioop_ratecv_impl()


________________________________________________________________________________________________________
*** CID 1164423:  Division or modulo by zero  (DIVIDE_BY_ZERO)
/Modules/audioop.c: 1375 in audioop_ratecv_impl()
1369                without spurious overflow is the challenge; we can
1370                settle for a reasonable upper bound, though, in this
1371                case ceiling(len/inrate) * outrate. */
1372
1373             /* compute ceiling(len/inrate) without overflow */
1374             Py_ssize_t q = len > 0 ? 1 + (len - 1) / inrate : 0;
>>>     CID 1164423:  Division or modulo by zero  (DIVIDE_BY_ZERO)
>>>     In expression "9223372036854775807L / q", division by expression
"q" which may be zero has undefined behavior.
1375             if (outrate > PY_SSIZE_T_MAX / q / bytes_per_frame)
1376                 str = NULL;
1377             else
1378                 str = PyBytes_FromStringAndSize(NULL,
1379                                                 q * outrate *
bytes_per_frame);
1380         }
"""

This is false positive. len should be non-negative and a case of 0 already checked just several lines before.

Is Coverity aware asserts? Perhaps this patch will silence it.

----------
components: Build
files: audioop_ratecv_coverity_silence.patch
keywords: patch
messages: 209284
nosy: christian.heimes, serhiy.storchaka
priority: normal
severity: normal
stage: patch review
status: open
title: Coverity complains on audioop
versions: Python 2.7, Python 3.3, Python 3.4
Added file: http://bugs.python.org/file33718/audioop_ratecv_coverity_silence.patch

_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue20394>
_______________________________________


More information about the Python-bugs-list mailing list