[issue7384] curses crash on FreeBSD

Stefan Krah report at bugs.python.org
Sat Apr 17 11:37:24 CEST 2010


Stefan Krah <stefan-usenet at bytereef.org> added the comment:

One oddity: In Mark's test case, the error only shows if readline
is imported _before_ curses. The other way around it's fine.


On FreeBSD 8.0 amd64, with the _default_ libcurses, the Valgrind output
for py3k looks like this:

[...]
==31089== Invalid write of size 8
==31089==    at 0x284F1AE: getwin (in /lib/libncursesw.so.8)
==31089==    by 0x2AE8532: PyCurses_GetWin (_cursesmodule.c:1903)
==31089==    by 0x47FBC7: call_function (ceval.c:3833)
==31089==    by 0x47AAC0: PyEval_EvalFrameEx (ceval.c:2645)
==31089==    by 0x47DF41: PyEval_EvalCodeEx (ceval.c:3282)
==31089==    by 0x47189F: PyEval_EvalCode (ceval.c:721)
==31089==    by 0x4B31AA: run_mod (pythonrun.c:1692)
==31089==    by 0x4B2FC3: PyRun_FileExFlags (pythonrun.c:1649)
==31089==    by 0x4B1734: PyRun_SimpleFileExFlags (pythonrun.c:1177)
==31089==    by 0x4B0C75: PyRun_AnyFileExFlags (pythonrun.c:963)
==31089==    by 0x4CB029: Py_Main (main.c:650)
==31089==    by 0x4150E4: main (python.c:152)
==31089==  Address 0x25c71e0 is 0 bytes after a block of size 112 alloc'd
==31089==    at 0x25A8AE: calloc (in /usr/local/lib/valgrind/vgpreload_memcheck-amd64-freebsd.so)
==31089==    by 0x29C518A: _nc_makenew (in /lib/libncurses.so.8)
==31089==    by 0x29C569F: newwin (in /lib/libncurses.so.8)
==31089==    by 0x284F2EE: getwin (in /lib/libncursesw.so.8)
==31089==    by 0x2AE8532: PyCurses_GetWin (_cursesmodule.c:1903)
==31089==    by 0x47FBC7: call_function (ceval.c:3833)
==31089==    by 0x47AAC0: PyEval_EvalFrameEx (ceval.c:2645)
==31089==    by 0x47DF41: PyEval_EvalCodeEx (ceval.c:3282)
==31089==    by 0x47189F: PyEval_EvalCode (ceval.c:721)
==31089==    by 0x4B31AA: run_mod (pythonrun.c:1692)
==31089==    by 0x4B2FC3: PyRun_FileExFlags (pythonrun.c:1649)
==31089==    by 0x4B1734: PyRun_SimpleFileExFlags (pythonrun.c:1177)
==31089==
[...]


Then I installed the curses from /usr/ports/devel/ncurses, and the
error didn't show up any more. I'm inclined to think that the bug is
in the system ncurses. Still, it would be nice to know why the import
order matters.

----------

_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue7384>
_______________________________________


More information about the Python-bugs-list mailing list