summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAllan Haldane <allan.haldane@gmail.com>2015-09-27 20:25:17 -0400
committerAllan Haldane <allan.haldane@gmail.com>2018-09-27 12:42:51 -0400
commit351e4b69260e0f2d0093e4cb67b42b54b4becfac (patch)
treeed26a7dbf90b8359d474e781c1bff42b70932169
parent5f2a5ae02dee34469d27896249f71deaa0c6de24 (diff)
downloadnumpy-351e4b69260e0f2d0093e4cb67b42b54b4becfac.tar.gz
BUG: _strided_masked_wrapper_transfer_function goes out of bounds
-rw-r--r--numpy/core/src/multiarray/dtype_transfer.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/numpy/core/src/multiarray/dtype_transfer.c b/numpy/core/src/multiarray/dtype_transfer.c
index 2cb1e0a95..97d899ce0 100644
--- a/numpy/core/src/multiarray/dtype_transfer.c
+++ b/numpy/core/src/multiarray/dtype_transfer.c
@@ -2965,6 +2965,10 @@ static void _strided_masked_wrapper_decsrcref_transfer_function(
dst += subloopsize * dst_stride;
src += subloopsize * src_stride;
N -= subloopsize;
+ if (N <= 0) {
+ break;
+ }
+
/* Process unmasked values */
mask = (npy_bool*)npy_memchr((char *)mask, 0, mask_stride, N,
&subloopsize, 0);
@@ -3000,6 +3004,10 @@ static void _strided_masked_wrapper_transfer_function(
dst += subloopsize * dst_stride;
src += subloopsize * src_stride;
N -= subloopsize;
+ if (N <= 0) {
+ break;
+ }
+
/* Process unmasked values */
mask = (npy_bool*)npy_memchr((char *)mask, 0, mask_stride, N,
&subloopsize, 0);