mpx_wrappers.c (__mpx_wrapper_memmove): Add zero length check.

libmpx/

	* mpxwrap/mpx_wrappers.c (__mpx_wrapper_memmove): Add
	zero length check.

gcc/testsuite/

	* gcc.target/i386/mpx/memmove-zero-length.c: New.

From-SVN: r221944
This commit is contained in:
Ilya Enkovich 2015-04-09 10:11:30 +00:00 committed by Ilya Enkovich
parent 54414978ae
commit 3ba99d8a03
4 changed files with 30 additions and 0 deletions

View File

@ -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

View File

@ -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;
}

View File

@ -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

View File

@ -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);