Mercurial > cpython-lru_cache-weakref
diff Modules/_cursesmodule.c @ 56224:2bfaddb19c3a legacy-trunk
#6243: fix segfault when keyname() returns a NULL pointer.
Bug noted by Trundle, patched by Trundle and Jerry Chen.
| author | Andrew M. Kuchling <amk@amk.ca> |
|---|---|
| date | Fri, 25 Sep 2009 22:23:54 +0000 |
| parents | a29babb54884 |
| children | 23115015e5b9 |
line wrap: on
line diff
--- a/Modules/_cursesmodule.c Fri Sep 25 16:07:55 2009 +0000 +++ b/Modules/_cursesmodule.c Fri Sep 25 22:23:54 2009 +0000 @@ -882,14 +882,17 @@ /* getch() returns ERR in nodelay mode */ PyErr_SetString(PyCursesError, "no input"); return NULL; - } else if (rtn<=255) + } else if (rtn<=255) { return Py_BuildValue("c", rtn); - else + } else { + const char *knp; #if defined(__NetBSD__) - return PyString_FromString(unctrl(rtn)); + knp = unctrl(rtn); #else - return PyString_FromString((char *)keyname(rtn)); + knp = keyname(rtn); #endif + return PyString_FromString((knp == NULL) ? "" : knp); + } } static PyObject *
