[issue3639] segfaults calling warnings.warn() with non-string message

2008-09-01 Thread Benjamin Peterson
Changes by Benjamin Peterson [EMAIL PROTECTED]: -- keywords: -needs review ___ Python tracker [EMAIL PROTECTED] http://bugs.python.org/issue3639 ___ ___ Python-bugs-list

[issue3639] segfaults calling warnings.warn() with non-string message

2008-09-01 Thread Brett Cannon
Brett Cannon [EMAIL PROTECTED] added the comment: Checked in r66140. -- resolution: - accepted status: open - closed ___ Python tracker [EMAIL PROTECTED] http://bugs.python.org/issue3639 ___

[issue3639] segfaults calling warnings.warn() with non-string message

2008-08-22 Thread Daniel Diniz
Daniel Diniz [EMAIL PROTECTED] added the comment: Brett, I don't think I know C (and CPython) enough to fix this. I was able to get rid of this specific segfault with this: -const char *text_char = _PyUnicode_AsString(text); +const char *text_char =

[issue3639] segfaults calling warnings.warn() with non-string message

2008-08-22 Thread Brett Cannon
Brett Cannon [EMAIL PROTECTED] added the comment: On Fri, Aug 22, 2008 at 8:03 AM, Daniel Diniz [EMAIL PROTECTED] wrote: Daniel Diniz [EMAIL PROTECTED] added the comment: Brett, I don't think I know C (and CPython) enough to fix this. I was able to get rid of this specific segfault with

[issue3639] segfaults calling warnings.warn() with non-string message

2008-08-22 Thread Brett Cannon
Brett Cannon [EMAIL PROTECTED] added the comment: The patch doesn't actually bother with a translation as the code causing issue is only there to prevent infinite recursion. So if the object being used is not a string, then there is no need to worry as it is not part of the infinite recursion

[issue3639] segfaults calling warnings.warn() with non-string message

2008-08-22 Thread Benjamin Peterson
Benjamin Peterson [EMAIL PROTECTED] added the comment: Brett, is this patch ready for review? -- nosy: +benjamin.peterson ___ Python tracker [EMAIL PROTECTED] http://bugs.python.org/issue3639 ___

[issue3639] segfaults calling warnings.warn() with non-string message

2008-08-22 Thread Brett Cannon
Brett Cannon [EMAIL PROTECTED] added the comment: That's why the keyword is set. =) ___ Python tracker [EMAIL PROTECTED] http://bugs.python.org/issue3639 ___ ___ Python-bugs-list

[issue3639] segfaults calling warnings.warn() with non-string message

2008-08-22 Thread Benjamin Peterson
Benjamin Peterson [EMAIL PROTECTED] added the comment: On Fri, Aug 22, 2008 at 2:59 PM, Brett Cannon [EMAIL PROTECTED] wrote: Brett Cannon [EMAIL PROTECTED] added the comment: That's why the keyword is set. =) Ah. I missed that. :) The patch looks fine.

[issue3639] segfaults calling warnings.warn() with non-string message

2008-08-21 Thread Lisandro Dalcin
New submission from Lisandro Dalcin [EMAIL PROTECTED]: from warnings import warn warn(hello world) # - Success warn(UserWarning) # - Segmentation fault warn(None) # - Segmentation fault warn(1) # - Segmentation fault -- components: Interpreter Core messages:

[issue3639] segfaults calling warnings.warn() with non-string message

2008-08-21 Thread Benjamin Peterson
Changes by Benjamin Peterson [EMAIL PROTECTED]: -- assignee: - brett.cannon nosy: +brett.cannon priority: - release blocker ___ Python tracker [EMAIL PROTECTED] http://bugs.python.org/issue3639 ___

[issue3639] segfaults calling warnings.warn() with non-string message

2008-08-21 Thread Daniel Diniz
Daniel Diniz [EMAIL PROTECTED] added the comment: Two small clues. First, a backtrace: #0 0xb7df102a in strcmp () from /lib/tls/i686/cmov/libc.so.6 #1 0x0809e678 in warn_explicit (category=0x81dd140, message=0xb7ac58f4, filename=0xb7acced0, lineno=1, module=0xb7f53300,

[issue3639] segfaults calling warnings.warn() with non-string message

2008-08-21 Thread Brett Cannon
Brett Cannon [EMAIL PROTECTED] added the comment: If you search for _PyUnicode_AsString() in Python/_warnings.c you will find several places that assume that the proper measures have been taken to make sure the object is a string. All of those places need to be fixed so that if a string is not