[Python-checkins] closes bpo-34468: Objects/rangeobject.c: Fix an always-false condition in range_repr() (GH-8880)
Miss Islington (bot)
webhook-mailer at python.org
Fri Aug 24 01:45:44 EDT 2018
https://github.com/python/cpython/commit/902f1618388280eeeb3957b273f0ccb3df938723
commit: 902f1618388280eeeb3957b273f0ccb3df938723
branch: 3.6
author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com>
committer: GitHub <noreply at github.com>
date: 2018-08-24T01:45:40-04:00
summary:
closes bpo-34468: Objects/rangeobject.c: Fix an always-false condition in range_repr() (GH-8880)
Also, propagate the error from PyNumber_AsSsize_t() because we don't care
only about OverflowError which is not reported if the second argument is NULL.
Reported by Svace static analyzer.
(cherry picked from commit 7ecae3ca0bda3cacf3b0125bae0bc718a17cc071)
Co-authored-by: Alexey Izbyshev <izbyshev at ispras.ru>
files:
M Objects/rangeobject.c
diff --git a/Objects/rangeobject.c b/Objects/rangeobject.c
index 8f5fc434bd49..2fc70cd8d7b7 100644
--- a/Objects/rangeobject.c
+++ b/Objects/rangeobject.c
@@ -618,11 +618,11 @@ range_repr(rangeobject *r)
Py_ssize_t istep;
/* Check for special case values for printing. We don't always
- need the step value. We don't care about errors
- (it means overflow), so clear the errors. */
+ need the step value. We don't care about overflow. */
istep = PyNumber_AsSsize_t(r->step, NULL);
- if (istep != 1 || (istep == -1 && PyErr_Occurred())) {
- PyErr_Clear();
+ if (istep == -1 && PyErr_Occurred()) {
+ assert(!PyErr_ExceptionMatches(PyExc_OverflowError));
+ return NULL;
}
if (istep == 1)
More information about the Python-checkins
mailing list