diff options
author | ienkovich <ienkovich@138bc75d-0d04-0410-961f-82ee72b054a4> | 2015-04-09 10:11:30 +0000 |
---|---|---|
committer | ienkovich <ienkovich@138bc75d-0d04-0410-961f-82ee72b054a4> | 2015-04-09 10:11:30 +0000 |
commit | 880923086b0675d706e9aa7611bf9b979dc62b0a (patch) | |
tree | 197c099455b92c4fccdc2a89f6f4d5cbb0d7ae2d | |
parent | 23af5d95f7be4fda969a82c63c9fbb7bfb48fd4a (diff) |
libmpx/
* mpxwrap/mpx_wrappers.c (__mpx_wrapper_memmove): Add
zero length check.
gcc/testsuite/
* gcc.target/i386/mpx/memmove-zero-length.c: New.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@221944 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r-- | gcc/testsuite/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/i386/mpx/memmove-zero-length.c | 18 | ||||
-rw-r--r-- | libmpx/ChangeLog | 5 | ||||
-rw-r--r-- | libmpx/mpxwrap/mpx_wrappers.c | 3 |
4 files changed, 30 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 1cd869a0fb58..90e467abb41c 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2015-04-09 Ilya Enkovich <ilya.enkovich@intel.com> + + * gcc.target/i386/mpx/memmove-zero-length.c: New. + 2015-04-09 Kirill Yukhin <kirill.yukhin@intel.com> PR target/65676 diff --git a/gcc/testsuite/gcc.target/i386/mpx/memmove-zero-length.c b/gcc/testsuite/gcc.target/i386/mpx/memmove-zero-length.c new file mode 100644 index 000000000000..78bfdebff030 --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/mpx/memmove-zero-length.c @@ -0,0 +1,18 @@ +/* { dg-do run } */ +/* { dg-options "-fcheck-pointer-bounds -mmpx" } */ + + +#include "mpx-check.h" +#include "string.h" + +int mpx_test (int argc, const char **argv) +{ + int *buf = (int *)malloc (100 * sizeof(int)); + + memmove (buf, NULL, 0); + memmove (NULL, buf, 0); + + free (buf); + + return 0; +} diff --git a/libmpx/ChangeLog b/libmpx/ChangeLog index 6b05278b0d05..56c3c5f1b2b6 100644 --- a/libmpx/ChangeLog +++ b/libmpx/ChangeLog @@ -1,3 +1,8 @@ +2015-04-09 Ilya Enkovich <ilya.enkovich@intel.com> + + * mpxwrap/mpx_wrappers.c (__mpx_wrapper_memmove): Add + zero length check. + 2015-04-02 Ilya Enkovich <ilya.enkovich@intel.com> PR driver/65444 diff --git a/libmpx/mpxwrap/mpx_wrappers.c b/libmpx/mpxwrap/mpx_wrappers.c index ef4be8d0a390..58670aae4819 100644 --- a/libmpx/mpxwrap/mpx_wrappers.c +++ b/libmpx/mpxwrap/mpx_wrappers.c @@ -97,6 +97,9 @@ __mpx_wrapper_memmove (void *dst, const void *src, size_t n) size_t offset_src = ((size_t) s) & (sizeof (void *) - 1); size_t offset_dst = ((size_t) d) & (sizeof (void *) - 1); + if (n == 0) + return ret; + __bnd_chk_ptr_bounds (dst, n); __bnd_chk_ptr_bounds (src, n); |