]> granicus.if.org Git - python/commitdiff
Issue #23765: Remove IsBadStringPtr calls in ctypes
authorSteve Dower <steve.dower@microsoft.com>
Wed, 25 Mar 2015 06:28:54 +0000 (23:28 -0700)
committerSteve Dower <steve.dower@microsoft.com>
Wed, 25 Mar 2015 06:28:54 +0000 (23:28 -0700)
Also renames a local to avoid warnings about shadowing

Modules/_ctypes/cfield.c

index 2078291731dfb82212de9c7278b6e73f9471a37e..4bd022dcda0b2823a81eea036656ca74c9d7f4d6 100644 (file)
@@ -1354,14 +1354,6 @@ z_get(void *ptr, Py_ssize_t size)
 {
     /* XXX What about invalid pointers ??? */
     if (*(void **)ptr) {
-#if defined(MS_WIN32) && !defined(_WIN32_WCE)
-        if (IsBadStringPtrA(*(char **)ptr, -1)) {
-            PyErr_Format(PyExc_ValueError,
-                         "invalid string pointer %p",
-                         *(char **)ptr);
-            return NULL;
-        }
-#endif
         return PyBytes_FromStringAndSize(*(char **)ptr,
                                          strlen(*(char **)ptr));
     } else {
@@ -1418,14 +1410,6 @@ Z_get(void *ptr, Py_ssize_t size)
     wchar_t *p;
     p = *(wchar_t **)ptr;
     if (p) {
-#if defined(MS_WIN32) && !defined(_WIN32_WCE)
-        if (IsBadStringPtrW(*(wchar_t **)ptr, -1)) {
-            PyErr_Format(PyExc_ValueError,
-                         "invalid string pointer %p",
-                         *(wchar_t **)ptr);
-            return NULL;
-        }
-#endif
         return PyUnicode_FromWideChar(p, wcslen(p));
     } else {
         Py_INCREF(Py_None);
@@ -1455,15 +1439,15 @@ BSTR_set(void *ptr, PyObject *value, Py_ssize_t size)
     /* create a BSTR from value */
     if (value) {
         wchar_t* wvalue;
-        Py_ssize_t size;
-        wvalue = PyUnicode_AsUnicodeAndSize(value, &size);
+        Py_ssize_t wsize;
+        wvalue = PyUnicode_AsUnicodeAndSize(value, &wsize);
         if (wvalue == NULL)
             return NULL;
-        if ((unsigned) size != size) {
+        if ((unsigned) wsize != wsize) {
             PyErr_SetString(PyExc_ValueError, "String too long for BSTR");
             return NULL;
         }
-        bstr = SysAllocStringLen(wvalue, (unsigned)size);
+        bstr = SysAllocStringLen(wvalue, (unsigned)wsize);
         Py_DECREF(value);
     } else
         bstr = NULL;