Kaydet (Commit) 9f902470 authored tarafından Thomas Heller's avatar Thomas Heller

Make the prototypes of our private PyUnicode_FromWideChar and

PyUnicode_AsWideChar replacement functions compatible to the official
functions by using Py_ssize_t instead of int.
üst 7d1d4363
...@@ -4711,13 +4711,14 @@ init_ctypes(void) ...@@ -4711,13 +4711,14 @@ init_ctypes(void)
} }
/***************************************************************** /*****************************************************************
* replacements for broken Python api functions * replacements for broken Python api functions (in Python 2.3).
* See #1047269 Buffer overwrite in PyUnicode_AsWideChar
*/ */
#ifdef HAVE_WCHAR_H #ifdef HAVE_WCHAR_H
PyObject *My_PyUnicode_FromWideChar(register const wchar_t *w, PyObject *My_PyUnicode_FromWideChar(register const wchar_t *w,
int size) Py_ssize_t size)
{ {
PyUnicodeObject *unicode; PyUnicodeObject *unicode;
...@@ -4749,7 +4750,7 @@ PyObject *My_PyUnicode_FromWideChar(register const wchar_t *w, ...@@ -4749,7 +4750,7 @@ PyObject *My_PyUnicode_FromWideChar(register const wchar_t *w,
int My_PyUnicode_AsWideChar(PyUnicodeObject *unicode, int My_PyUnicode_AsWideChar(PyUnicodeObject *unicode,
register wchar_t *w, register wchar_t *w,
int size) Py_ssize_t size)
{ {
if (unicode == NULL) { if (unicode == NULL) {
PyErr_BadInternalCall(); PyErr_BadInternalCall();
......
...@@ -377,8 +377,8 @@ extern char *conversion_mode_errors; ...@@ -377,8 +377,8 @@ extern char *conversion_mode_errors;
# undef PyUnicode_AsWideChar # undef PyUnicode_AsWideChar
# define PyUnicode_AsWideChar My_PyUnicode_AsWideChar # define PyUnicode_AsWideChar My_PyUnicode_AsWideChar
extern PyObject *My_PyUnicode_FromWideChar(const wchar_t *, int); extern PyObject *My_PyUnicode_FromWideChar(const wchar_t *, Py_ssize_t);
extern int My_PyUnicode_AsWideChar(PyUnicodeObject *, wchar_t *, int); extern int My_PyUnicode_AsWideChar(PyUnicodeObject *, wchar_t *, Py_ssize_t);
#endif #endif
......
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