mirror of
https://github.com/python/cpython.git
synced 2025-08-03 00:23:06 +00:00
Issue #23370: Fix off-by-one error for non-contiguous buffers.
This commit is contained in:
parent
f046dfe60e
commit
7213fcc27e
2 changed files with 53 additions and 2 deletions
|
@ -488,7 +488,7 @@ PyBuffer_FromContiguous(Py_buffer *view, void *buf, Py_ssize_t len, char fort)
|
|||
|
||||
/* Otherwise a more elaborate scheme is needed */
|
||||
|
||||
/* XXX(nnorwitz): need to check for overflow! */
|
||||
/* view->ndim <= 64 */
|
||||
indices = (Py_ssize_t *)PyMem_Malloc(sizeof(Py_ssize_t)*(view->ndim));
|
||||
if (indices == NULL) {
|
||||
PyErr_NoMemory();
|
||||
|
@ -510,10 +510,10 @@ PyBuffer_FromContiguous(Py_buffer *view, void *buf, Py_ssize_t len, char fort)
|
|||
*/
|
||||
elements = len / view->itemsize;
|
||||
while (elements--) {
|
||||
addone(view->ndim, indices, view->shape);
|
||||
ptr = PyBuffer_GetPointer(view, indices);
|
||||
memcpy(ptr, src, view->itemsize);
|
||||
src += view->itemsize;
|
||||
addone(view->ndim, indices, view->shape);
|
||||
}
|
||||
|
||||
PyMem_Free(indices);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue