mirror of https://github.com/python/cpython
Added NEWS entry, plus:
Merged revisions 59925 via svnmerge from svn+ssh://pythondev@svn.python.org/python/trunk/Modules/_ctypes ........ r59925 | thomas.heller | 2008-01-11 20:34:06 +0100 (Fr, 11 Jan 2008) | 5 lines Raise an error instead of crashing with a segfault when a NULL function pointer is called. Will backport to release25-maint. ........
This commit is contained in:
parent
c5bb868414
commit
b9c741c43c
|
@ -123,5 +123,11 @@ class CFuncPtrTestCase(unittest.TestCase):
|
|||
self.failUnlessEqual(strtok(None, "\n"), "c")
|
||||
self.failUnlessEqual(strtok(None, "\n"), None)
|
||||
|
||||
def test_NULL_funcptr(self):
|
||||
tp = CFUNCTYPE(c_int)
|
||||
func = tp() # NULL function pointer
|
||||
# raise a ValueError when we try to call it
|
||||
self.assertRaises(ValueError, func)
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
||||
|
|
|
@ -12,6 +12,8 @@ What's New in Python 2.5.2c1?
|
|||
Core and builtins
|
||||
-----------------
|
||||
|
||||
- Prevent a segfault when a ctypes NULL function pointer is called.
|
||||
|
||||
- Bug #1517: Possible segfault in lookup().
|
||||
|
||||
- Issue #1638: %zd configure test fails on Linux.
|
||||
|
|
|
@ -3305,6 +3305,11 @@ CFuncPtr_call(CFuncPtrObject *self, PyObject *inargs, PyObject *kwds)
|
|||
|
||||
|
||||
pProc = *(void **)self->b_ptr;
|
||||
if (pProc == NULL) {
|
||||
PyErr_SetString(PyExc_ValueError,
|
||||
"attempt to call NULL function pointer");
|
||||
return NULL;
|
||||
}
|
||||
#ifdef MS_WIN32
|
||||
if (self->index) {
|
||||
/* It's a COM method */
|
||||
|
|
Loading…
Reference in New Issue