This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

classification
Title: safe_power(): CID 1426161: Integer handling issues (DIVIDE_BY_ZERO)
Type: Stage: resolved
Components: Interpreter Core Versions: Python 3.7
process
Status: closed Resolution: not a bug
Dependencies: Superseder:
Assigned To: Nosy List: serhiy.storchaka, vstinner
Priority: normal Keywords:

Created on 2017-12-15 21:39 by vstinner, last changed 2022-04-11 14:58 by admin. This issue is now closed.

Messages (2)
msg308428 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2017-12-15 21:39
Coverity found an issue in the commit 2e3f5701858d1fc04caedefdd9a8ea43810270d2 (bpo-30416).

New defect(s) Reported-by: Coverity Scan
Showing 1 of 1 defect(s)

** CID 1426161:  Integer handling issues  (DIVIDE_BY_ZERO)
/Python/ast_opt.c: 219 in safe_power()

________________________________________________________________________________________________________
*** CID 1426161:  Integer handling issues  (DIVIDE_BY_ZERO)
/Python/ast_opt.c: 219 in safe_power()
213         if (PyLong_Check(v) && PyLong_Check(w) && Py_SIZE(v) && Py_SIZE(w) > 0) {
214             size_t vbits = _PyLong_NumBits(v);
215             size_t wbits = PyLong_AsSize_t(w);
216             if (vbits == (size_t)-1 || wbits == (size_t)-1) {
217                 return NULL;
218             }
>>>     CID 1426161:  Integer handling issues  (DIVIDE_BY_ZERO)
>>>     In expression "128UL / wbits", division by expression "wbits" which may be zero has undefined behavior.
219             if (vbits > MAX_INT_SIZE / wbits) {
220                 return NULL;
221             }
222         }
223
224         return PyNumber_Power(v, w, Py_None);
msg308429 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2017-12-15 21:43
PyLong_AsSize_t(w) cannot be zero thanks to Py_SIZE(w) > 0. I classified the issue as a false positive. Sorry for the noise.
History
Date User Action Args
2022-04-11 14:58:55adminsetgithub: 76523
2017-12-15 21:43:37vstinnersetstatus: open -> closed
resolution: not a bug
messages: + msg308429

stage: resolved
2017-12-15 21:39:12vstinnercreate