[Python-bugs-list] [ python-Bugs-528132 ] classmethod().__get__() segfault

noreply@sourceforge.net noreply@sourceforge.net
Sun, 17 Mar 2002 12:11:12 -0800


Bugs item #528132, was opened at 2002-03-10 15:19
You can respond by visiting: 
http://sourceforge.net/tracker/?func=detail&atid=105470&aid=528132&group_id=5470

Category: Type/class unification
Group: Python 2.2.1 candidate
Status: Open
Resolution: None
Priority: 7
Submitted By: Armin Rigo (arigo)
>Assigned to: Guido van Rossum (gvanrossum)
Summary: classmethod().__get__() segfault

Initial Comment:
Calling the __get__ method of a classmethod object 
with a single argument causes a segmentation fault in 
the interpreter :

  def f(): pass
  classmethod(f).__get__(0)

This is caused by an internal inconsistency between 
the __get__ wrapper function in C that calls the 
tp_descr_get slot with a NULL third argument in this 
case and some tp_descr_get slot implementations (like 
the classmethods') which dereference it with no check.

----------------------------------------------------------------------

>Comment By: Michael Hudson (mwh)
Date: 2002-03-17 20:11

Message:
Logged In: YES 
user_id=6656

Guido, is this fix sane?

No other implementation of tp_descr_get seems to be at risk.

----------------------------------------------------------------------

Comment By: Michael Hudson (mwh)
Date: 2002-03-16 17:37

Message:
Logged In: YES 
user_id=6656

Oopsie, we'll have this one fixed for 2.2.1.

I think you mangaged to submit this bug during a time when
bug email was somewhat hosed...

----------------------------------------------------------------------

You can respond by visiting: 
http://sourceforge.net/tracker/?func=detail&atid=105470&aid=528132&group_id=5470