[Python-Dev] segmentation fault in Python 2.5b3 (trunk:51066)

Thomas Heller theller at python.net
Thu Aug 3 15:46:28 CEST 2006


Ralf Schmitt schrieb:
> Hi all,
> 
> I've been trying to port our software to python 2.5.
> unfortunately I'm getting constantly hit by segfaults.
> 
> I've boiled it down to the following code:
> 
> rs at schrotti:~/bug$ cat t.py
> import array
> 
> class Indexer(object):
>      maximumForwardSize = property(array.array.fromstring)
> rs at schrotti:~/bug$ python t.py
> Segmentation fault

Confirmed under Windows.  Here's the problem (Objects/descrobject.c, near line 1200,
in property_init(...):


	/* if no docstring given and the getter has one, use that one */
	if ((doc == NULL || doc == Py_None) && get != NULL && 
	    PyObject_HasAttrString(get, "__doc__")) {
		if (!(get_doc = PyObject_GetAttrString(get, "__doc__")))
			return -1;
		Py_DECREF(get_doc); /* it is INCREF'd again below */
                ^^^^^^^^^^^^^^^^^^
		doc = get_doc;
	}

	Py_XINCREF(get);
	Py_XINCREF(set);
	Py_XINCREF(del);
	Py_XINCREF(doc);

If the refcount of get_doc drops to zero in the Py_DECREF(), the Py_XINCREF()
shortly after doesn't help ;-).

Thomas



More information about the Python-Dev mailing list