Seg fault in Python/C API: PyString_FromString(NULL)

Yves-Eric Martin yemartin at garage.co.jp
Wed Apr 12 03:16:21 EDT 2000


    Hi there,

    While writing a little test unit for a Python gettext
implementation, I ran into a seg fault that I traced to
PyString_FromString being called with a NULL argument.

    First, I am new to the Python/C API, so correct me if I am wrong:
shouldn't PyString_FromString(NULL) return Py_None? Or am I out to
lunch?

    Any information on this segfault is welcome. Here is how I simply
reproduce it: (This was run on Debian GNU/Linux 2.2.14, with gcc
2.95.2 and Python 1.5.2).

---------------- test.c ----------------
#include <stdio.h>
#include "Python.h"

static PyObject*
PyTest_testnull(PyObject* self,PyObject *args)
{
  return PyString_FromString(NULL);
}

static struct PyMethodDef PyTest_Methods[] = {
  {"testnull",(PyCFunction)PyTest_testnull,METH_VARARGS},
  {NULL, NULL}
};

void inittest()
{
  Py_InitModule("test",PyTest_Methods);
}
--------------------------------


---------------- Makefile ----------------
test.so: test.o test.c
        gcc -shared -lc  test.o  -o test.so

test.o: test.c
        gcc -fPIC  -g -O2 -I/usr/include/python1.5 -I/usr/include/python1.5 -DHAVE_CONFIG_H -c ./test.c
--------------------------------


---------------- runtest.py ----------------
import test

print "About to run test..."
test.testnull()
print "If you are reading this, it's working!"
--------------------------------

The result of running "python runtest.py" is:

About to run test...
Segmentation fault



    Thanks.

-- 
Yves-Eric Martin
Digital Garage Inc.
yemartin at garage.co.jp




More information about the Python-list mailing list