Issue 30281: set stop default to -PY_SSIZE_T_MAX-1 in PySlice_Unpack (original) (raw)
Created on 2017-05-05 10:47 by xiang.zhang, last changed 2022-04-11 14:58 by admin. This issue is now closed.
Pull Requests | |||
---|---|---|---|
URL | Status | Linked | Edit |
PR 1480 | merged | xiang.zhang,2017-05-05 10:50 | |
PR 1529 | merged | xiang.zhang,2017-05-10 10:33 | |
PR 1530 | merged | xiang.zhang,2017-05-10 10:33 | |
PR 1531 | merged | xiang.zhang,2017-05-10 10:36 |
Messages (8) | ||
---|---|---|
msg293097 - (view) | Author: Xiang Zhang (xiang.zhang) * ![]() |
Date: 2017-05-05 10:47 |
The default value for stop in PySlice_Unpack should be -PY_SSIZE_T_MAX-1. Otherwise a sequence of length PY_SSIZE_T_MAX could get a wrong slicelength when doing L[::-1]. | ||
msg293098 - (view) | Author: Serhiy Storchaka (serhiy.storchaka) * ![]() |
Date: 2017-05-05 10:56 |
I'm not sure that -PY_SSIZE_T_MAX-1 always is representable. I would use PY_SSIZE_T_MIN and add a static assert (Py_BUILD_ASSERT) that PY_SSIZE_T_MIN + 1 <= -PY_SSIZE_T_MAX. Actually currently PY_SSIZE_T_MIN is -PY_SSIZE_T_MAX-1 by definition, but this can be changed in future. | ||
msg293101 - (view) | Author: STINNER Victor (vstinner) * ![]() |
Date: 2017-05-05 11:54 |
Hum, integer overflows are complex issues. It deserves an unit test, maybe even in C written in _testcapi? | ||
msg293116 - (view) | Author: Xiang Zhang (xiang.zhang) * ![]() |
Date: 2017-05-05 16:02 |
I am okay to use PY_SSIZE_T_MIN. But if we are worried about future change of PY_SSIZE_T_MIN, seems we also need to change the API doc of PySlice_Unpack(). Although _PyEval_SliceIndex's comment says it clips value to -PY_SSIZE_T_MAX-1, actually it uses PyNumber_AsSize_t and clips value to PY_SSIZE_T_MIN. | ||
msg293396 - (view) | Author: Xiang Zhang (xiang.zhang) * ![]() |
Date: 2017-05-10 10:19 |
New changeset 2ddf5a19c3a06978edff2c8ba0aaf5df3528204a by Xiang Zhang in branch 'master': bpo-30281: Fix the default value for stop in PySlice_Unpack() (#1480) https://github.com/python/cpython/commit/2ddf5a19c3a06978edff2c8ba0aaf5df3528204a | ||
msg293399 - (view) | Author: Xiang Zhang (xiang.zhang) * ![]() |
Date: 2017-05-10 11:00 |
New changeset 98b49a00d413972965044fd355be3b8482caa07c by Xiang Zhang in branch '3.6': bpo-30281: Fix the default value for stop in PySlice_Unpack() (#1480) (#1529) https://github.com/python/cpython/commit/98b49a00d413972965044fd355be3b8482caa07c | ||
msg293400 - (view) | Author: Xiang Zhang (xiang.zhang) * ![]() |
Date: 2017-05-10 11:11 |
New changeset 639e295650a51894412c9d976958792010d3bcf8 by Xiang Zhang in branch '3.5': bpo-30281: Fix the default value for stop in PySlice_Unpack() (#1530) (#1480) https://github.com/python/cpython/commit/639e295650a51894412c9d976958792010d3bcf8 | ||
msg293402 - (view) | Author: Xiang Zhang (xiang.zhang) * ![]() |
Date: 2017-05-10 11:20 |
New changeset 05469fa1c05acf55bdca05db21822ecdd7f6487a by Xiang Zhang in branch '2.7': bpo-30281: Fix the default value for stop in PySlice_Unpack() (#1531) (#1480) https://github.com/python/cpython/commit/05469fa1c05acf55bdca05db21822ecdd7f6487a |
History | |||
---|---|---|---|
Date | User | Action | Args |
2022-04-11 14:58:46 | admin | set | github: 74467 |
2017-05-10 11:21:37 | xiang.zhang | set | status: open -> closedresolution: fixedstage: patch review -> resolved |
2017-05-10 11:20:31 | xiang.zhang | set | messages: + |
2017-05-10 11:11:11 | xiang.zhang | set | messages: + |
2017-05-10 11:00:18 | xiang.zhang | set | messages: + |
2017-05-10 10:36:32 | xiang.zhang | set | pull_requests: + <pull%5Frequest1630> |
2017-05-10 10:33:45 | xiang.zhang | set | pull_requests: + <pull%5Frequest1629> |
2017-05-10 10:33:06 | xiang.zhang | set | pull_requests: + <pull%5Frequest1628> |
2017-05-10 10:19:44 | xiang.zhang | set | messages: + |
2017-05-05 16:02:36 | xiang.zhang | set | messages: + |
2017-05-05 11:54:51 | vstinner | set | nosy: + vstinnermessages: + |
2017-05-05 10:56:04 | serhiy.storchaka | set | nosy: + mark.dickinsonmessages: + |
2017-05-05 10:50:02 | xiang.zhang | set | pull_requests: + <pull%5Frequest1579> |
2017-05-05 10:47:45 | xiang.zhang | create |