[Python-checkins] cpython (3.5): ctypes: fix CThunkObject_new()

victor.stinner python-checkins at python.org
Wed Jul 27 11:00:41 EDT 2016


https://hg.python.org/cpython/rev/ab4975520c7d
changeset:   102460:ab4975520c7d
branch:      3.5
parent:      102458:3f2e37e705d3
user:        Victor Stinner <victor.stinner at gmail.com>
date:        Wed Jul 27 16:58:47 2016 +0200
summary:
  ctypes: fix CThunkObject_new()

* Initialize restype and flags fields to fix a crash when Python runs on a
  read-only file system
* Use Py_ssize_t type rather than int for the "i" iterator variable
* Reorder assignements to be able to more easily check if all fields are
  initialized

Issue #11048. Initial patch written by Marcin Bachry.

files:
  Modules/_ctypes/callbacks.c |  6 ++++--
  1 files changed, 4 insertions(+), 2 deletions(-)


diff --git a/Modules/_ctypes/callbacks.c b/Modules/_ctypes/callbacks.c
--- a/Modules/_ctypes/callbacks.c
+++ b/Modules/_ctypes/callbacks.c
@@ -305,7 +305,7 @@
 static CThunkObject* CThunkObject_new(Py_ssize_t nArgs)
 {
     CThunkObject *p;
-    int i;
+    Py_ssize_t i;
 
     p = PyObject_GC_NewVar(CThunkObject, &PyCThunk_Type, nArgs);
     if (p == NULL) {
@@ -313,11 +313,13 @@
         return NULL;
     }
 
+    p->pcl_write = NULL;
     p->pcl_exec = NULL;
-    p->pcl_write = NULL;
     memset(&p->cif, 0, sizeof(p->cif));
+    p->flags = 0;
     p->converters = NULL;
     p->callable = NULL;
+    p->restype = NULL;
     p->setfunc = NULL;
     p->ffi_restype = NULL;
 

-- 
Repository URL: https://hg.python.org/cpython


More information about the Python-checkins mailing list