Issue 5137: SystemError when len returns a non-number (original) (raw)

This issue has been migrated to GitHub: https://github.com/python/cpython/issues/49387

classification

Title: SystemError when __len__ returns a non-number
Type: crash Stage:
Components: Versions: Python 3.0, Python 3.1

process

Status: closed Resolution: fixed
Dependencies: Superseder:
Assigned To: benjamin.peterson Nosy List: benjamin.peterson, hagen, pitrou, rhettinger
Priority: release blocker Keywords: patch

Created on 2009-02-03 04:45 by rhettinger, last changed 2022-04-11 14:56 by admin. This issue is now closed.

Files
File name Uploaded Description Edit
crasher_len.py rhettinger,2009-02-03 04:45 Example
SystemError_bad_len.patch benjamin.peterson,2009-02-07 16:58
SystemError_bad_len2.patch benjamin.peterson,2009-02-08 17:34
bad_len3.patch benjamin.peterson,2009-02-08 17:54
Messages (8)
msg81024 - (view) Author: Raymond Hettinger (rhettinger) * (Python committer) Date: 2009-02-03 04:45
len(obj) is not happy when obj.__len__() returns a non-number.
msg81338 - (view) Author: Benjamin Peterson (benjamin.peterson) * (Python committer) Date: 2009-02-07 16:58
Here's patch that raises a TypeError like 2.x.
msg81386 - (view) Author: Antoine Pitrou (pitrou) * (Python committer) Date: 2009-02-08 16:03
Wouldn't it be better to use PyNumber_AsSsize_t() instead, so as to support all __index__-enabled objects?
msg81393 - (view) Author: Benjamin Peterson (benjamin.peterson) * (Python committer) Date: 2009-02-08 17:34
Yes, good idea.
msg81395 - (view) Author: Antoine Pitrou (pitrou) * (Python committer) Date: 2009-02-08 17:42
I don't think you need to call PyNumber_Check() (unless you want to customize the error message).
msg81402 - (view) Author: Antoine Pitrou (pitrou) * (Python committer) Date: 2009-02-08 18:20
The patch is ok to me. (I assume all tests pass fine :-))
msg81418 - (view) Author: Benjamin Peterson (benjamin.peterson) * (Python committer) Date: 2009-02-08 21:07
Thanks for the reviews! Fixed in r69451.
msg81531 - (view) Author: Hagen Fürstenau (hagen) Date: 2009-02-10 06:55
This also solves issue 3729.
History
Date User Action Args
2022-04-11 14:56:45 admin set github: 49387
2009-02-10 06:55:34 hagen set nosy: + hagenmessages: +
2009-02-08 21:07:56 benjamin.peterson set status: open -> closedresolution: accepted -> fixedmessages: +
2009-02-08 18:20:44 pitrou set keywords: - needs reviewassignee: benjamin.petersonresolution: acceptedmessages: +
2009-02-08 17:54:10 benjamin.peterson set files: + bad_len3.patch
2009-02-08 17:42:16 pitrou set messages: +
2009-02-08 17:34:09 benjamin.peterson set files: + SystemError_bad_len2.patchmessages: +
2009-02-08 16:03:31 pitrou set nosy: + pitroumessages: +
2009-02-07 16:58:37 benjamin.peterson set keywords: + needs review, patchfiles: + SystemError_bad_len.patchmessages: + nosy: + benjamin.peterson
2009-02-03 04:45:14 rhettinger create