diff options
author | Charles Harris <charlesr.harris@gmail.com> | 2022-12-13 17:51:54 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-12-13 17:51:54 -0500 |
commit | 1a21e72a2c5281bcb0d4d421c383ee77de0287d1 (patch) | |
tree | 581ed2daa8d58d75a8ece9b7c3a3d7e0aa8798ca | |
parent | ae18b817df2c4411c6a3f180d3e640874cae3a85 (diff) | |
parent | 5940b4277a8212da9d802860430bdbf35855dddf (diff) | |
download | numpy-1a21e72a2c5281bcb0d4d421c383ee77de0287d1.tar.gz |
Merge pull request #22791 from hawkinsp/floatbarrier
BUG: Ensure arguments to npy_floatstatus_..._barrier() can be dereferenced
-rw-r--r-- | numpy/core/src/multiarray/array_assign_array.c | 4 | ||||
-rw-r--r-- | numpy/core/src/multiarray/ctors.c | 2 |
2 files changed, 3 insertions, 3 deletions
diff --git a/numpy/core/src/multiarray/array_assign_array.c b/numpy/core/src/multiarray/array_assign_array.c index 9d5bf6875..7aee7d6e9 100644 --- a/numpy/core/src/multiarray/array_assign_array.c +++ b/numpy/core/src/multiarray/array_assign_array.c @@ -130,7 +130,7 @@ raw_array_assign_array(int ndim, npy_intp const *shape, } if (!(flags & NPY_METH_NO_FLOATINGPOINT_ERRORS)) { - npy_clear_floatstatus_barrier(src_data); + npy_clear_floatstatus_barrier((char*)&src_data); } if (!(flags & NPY_METH_REQUIRES_PYAPI)) { NPY_BEGIN_THREADS; @@ -153,7 +153,7 @@ raw_array_assign_array(int ndim, npy_intp const *shape, NPY_cast_info_xfree(&cast_info); if (!(flags & NPY_METH_NO_FLOATINGPOINT_ERRORS)) { - int fpes = npy_get_floatstatus_barrier(src_data); + int fpes = npy_get_floatstatus_barrier((char*)&src_data); if (fpes && PyUFunc_GiveFloatingpointErrors("cast", fpes) < 0) { return -1; } diff --git a/numpy/core/src/multiarray/ctors.c b/numpy/core/src/multiarray/ctors.c index 280cdb0c7..fa3b103dd 100644 --- a/numpy/core/src/multiarray/ctors.c +++ b/numpy/core/src/multiarray/ctors.c @@ -2834,7 +2834,7 @@ PyArray_CopyAsFlat(PyArrayObject *dst, PyArrayObject *src, NPY_ORDER order) } if (res == 0 && !(flags & NPY_METH_NO_FLOATINGPOINT_ERRORS)) { - int fpes = npy_get_floatstatus_barrier((char *)src_iter); + int fpes = npy_get_floatstatus_barrier((char *)&src_iter); if (fpes && PyUFunc_GiveFloatingpointErrors("cast", fpes) < 0) { return -1; } |