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.

Author mark.dickinson
Recipients ajaksu2, alanmcintyre, avalind, dtorp, ilan, jafo, mark.dickinson, phr, rhettinger, terry.reedy, uzi
Date 2008-06-18.00:02:01
SpamBayes Score 0.0034819427
Marked as misclassified No
Message-id <1213747324.87.0.2917819374.issue2138@psf.upfronthosting.co.za>
In-reply-to
Content
It looks like there's a refcounting bug in the code: if the call to 
PyNumber_Multiply fails then iobj gets DECREF'd twice.  This means that a 
keyboard interrupt of factorial() can exit the interpreter:

Python 2.6a3+ (trunk:64341M, Jun 17 2008, 13:19:01) 
[GCC 4.0.1 (Apple Inc. build 5465)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> from math import factorial
[36374 refs]
>>> factorial(10**9)
^CFatal Python error: 
/Users/dickinsm/python_source/trunk/Modules/mathmodule.c:562 object at 
0x81f63c has negative ref count -1
Abort trap
History
Date User Action Args
2008-06-18 00:02:05mark.dickinsonsetspambayes_score: 0.00348194 -> 0.0034819427
recipients: + mark.dickinson, rhettinger, terry.reedy, jafo, phr, dtorp, alanmcintyre, ajaksu2, avalind, ilan, uzi
2008-06-18 00:02:04mark.dickinsonsetspambayes_score: 0.00348194 -> 0.00348194
messageid: <1213747324.87.0.2917819374.issue2138@psf.upfronthosting.co.za>
2008-06-18 00:02:03mark.dickinsonlinkissue2138 messages
2008-06-18 00:02:01mark.dickinsoncreate