Kaydet (Commit) abb33517 authored tarafından Brian Curtin's avatar Brian Curtin

Properly downcast from size_t/Py_ssize_t in a few places.

üst 19467d27
...@@ -765,8 +765,9 @@ Py2Reg(PyObject *value, DWORD typ, BYTE **retDataBuf, DWORD *retDataSize) ...@@ -765,8 +765,9 @@ Py2Reg(PyObject *value, DWORD typ, BYTE **retDataBuf, DWORD *retDataSize)
else { else {
if (!PyUnicode_Check(value)) if (!PyUnicode_Check(value))
return FALSE; return FALSE;
*retDataSize = Py_SAFE_DOWNCAST(
*retDataSize = 2 + PyUnicode_GET_DATA_SIZE(value); 2 + PyUnicode_GET_DATA_SIZE(value),
size_t, DWORD);
} }
*retDataBuf = (BYTE *)PyMem_NEW(DWORD, *retDataSize); *retDataBuf = (BYTE *)PyMem_NEW(DWORD, *retDataSize);
if (*retDataBuf==NULL){ if (*retDataBuf==NULL){
...@@ -798,7 +799,8 @@ Py2Reg(PyObject *value, DWORD typ, BYTE **retDataBuf, DWORD *retDataSize) ...@@ -798,7 +799,8 @@ Py2Reg(PyObject *value, DWORD typ, BYTE **retDataBuf, DWORD *retDataSize)
t = PyList_GET_ITEM(value, j); t = PyList_GET_ITEM(value, j);
if (!PyUnicode_Check(t)) if (!PyUnicode_Check(t))
return FALSE; return FALSE;
size += 2 + PyUnicode_GET_DATA_SIZE(t); size += Py_SAFE_DOWNCAST(2 + PyUnicode_GET_DATA_SIZE(t),
size_t, DWORD);
} }
*retDataSize = size + 2; *retDataSize = size + 2;
...@@ -848,7 +850,7 @@ Py2Reg(PyObject *value, DWORD typ, BYTE **retDataBuf, DWORD *retDataSize) ...@@ -848,7 +850,7 @@ Py2Reg(PyObject *value, DWORD typ, BYTE **retDataBuf, DWORD *retDataSize)
PyErr_NoMemory(); PyErr_NoMemory();
return FALSE; return FALSE;
} }
*retDataSize = view.len; *retDataSize = Py_SAFE_DOWNCAST(view.len, Py_ssize_t, DWORD);
memcpy(*retDataBuf, view.buf, view.len); memcpy(*retDataBuf, view.buf, view.len);
PyBuffer_Release(&view); PyBuffer_Release(&view);
} }
......
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