Commit 278bbb67 authored by Steve Dower's avatar Steve Dower

Issue #23765: Remove IsBadStringPtr calls in ctypes

Also renames a local to avoid warnings about shadowing
parent ac5a9847
...@@ -1354,14 +1354,6 @@ z_get(void *ptr, Py_ssize_t size) ...@@ -1354,14 +1354,6 @@ z_get(void *ptr, Py_ssize_t size)
{ {
/* XXX What about invalid pointers ??? */ /* XXX What about invalid pointers ??? */
if (*(void **)ptr) { 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, return PyBytes_FromStringAndSize(*(char **)ptr,
strlen(*(char **)ptr)); strlen(*(char **)ptr));
} else { } else {
...@@ -1418,14 +1410,6 @@ Z_get(void *ptr, Py_ssize_t size) ...@@ -1418,14 +1410,6 @@ Z_get(void *ptr, Py_ssize_t size)
wchar_t *p; wchar_t *p;
p = *(wchar_t **)ptr; p = *(wchar_t **)ptr;
if (p) { 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)); return PyUnicode_FromWideChar(p, wcslen(p));
} else { } else {
Py_INCREF(Py_None); Py_INCREF(Py_None);
...@@ -1455,15 +1439,15 @@ BSTR_set(void *ptr, PyObject *value, Py_ssize_t size) ...@@ -1455,15 +1439,15 @@ BSTR_set(void *ptr, PyObject *value, Py_ssize_t size)
/* create a BSTR from value */ /* create a BSTR from value */
if (value) { if (value) {
wchar_t* wvalue; wchar_t* wvalue;
Py_ssize_t size; Py_ssize_t wsize;
wvalue = PyUnicode_AsUnicodeAndSize(value, &size); wvalue = PyUnicode_AsUnicodeAndSize(value, &wsize);
if (wvalue == NULL) if (wvalue == NULL)
return NULL; return NULL;
if ((unsigned) size != size) { if ((unsigned) wsize != wsize) {
PyErr_SetString(PyExc_ValueError, "String too long for BSTR"); PyErr_SetString(PyExc_ValueError, "String too long for BSTR");
return NULL; return NULL;
} }
bstr = SysAllocStringLen(wvalue, (unsigned)size); bstr = SysAllocStringLen(wvalue, (unsigned)wsize);
Py_DECREF(value); Py_DECREF(value);
} else } else
bstr = NULL; bstr = NULL;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment