diff options
author | Pekka Paalanen <pekka.paalanen@collabora.co.uk> | 2015-05-07 14:21:30 +0300 |
---|---|---|
committer | Pekka Paalanen <pekka.paalanen@collabora.co.uk> | 2015-09-01 17:05:58 +0300 |
commit | c70ddd5c9e12d87ff461d73a6f53b00d52925cf5 (patch) | |
tree | cda248189ccd42cd42c68fe66f0f271c475554ac | |
parent | a82e519944e5d1af41cc94a14d9ae1fe0e430e68 (diff) |
utils.[ch]: add FENCE_MALLOC_ACTIVE
Define a new token to simplify checking whether fence_malloc() actually
can catch out-of-bounds access.
This will be used in the future to skip tests that rely on fence_malloc
checking functionality.
Changes in v2:
- #define FENCE_MALLOC_ACTIVE always, but change its value to help catch
use of it without including utils.h
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Reviewed-by: Ben Avison <bavison@riscosopen.org>
-rw-r--r-- | test/utils.c | 6 | ||||
-rw-r--r-- | test/utils.h | 11 |
2 files changed, 14 insertions, 3 deletions
diff --git a/test/utils.c b/test/utils.c index 5663aec..e872791 100644 --- a/test/utils.c +++ b/test/utils.c @@ -377,7 +377,7 @@ typedef struct int n_bytes; } info_t; -#if defined(HAVE_MPROTECT) && defined(HAVE_GETPAGESIZE) && defined(HAVE_SYS_MMAN_H) && defined(HAVE_MMAP) +#if FENCE_MALLOC_ACTIVE /* This is apparently necessary on at least OS X */ #ifndef MAP_ANONYMOUS @@ -445,7 +445,7 @@ fence_free (void *data) munmap (info->addr, info->n_bytes); } -#else +#else /* FENCE_MALLOC_ACTIVE */ void * fence_malloc (int64_t len) @@ -459,7 +459,7 @@ fence_free (void *data) free (data); } -#endif +#endif /* FENCE_MALLOC_ACTIVE */ uint8_t * make_random_bytes (int n_bytes) diff --git a/test/utils.h b/test/utils.h index fc10524..6018354 100644 --- a/test/utils.h +++ b/test/utils.h @@ -86,6 +86,17 @@ is_little_endian (void) void image_endian_swap (pixman_image_t *img); +#if defined (HAVE_MPROTECT) && defined (HAVE_GETPAGESIZE) && \ + defined (HAVE_SYS_MMAN_H) && defined (HAVE_MMAP) +/* fence_malloc and friends have working fence implementation. + * Without this, fence_malloc still allocs but does not catch + * out-of-bounds accesses. + */ +#define FENCE_MALLOC_ACTIVE 1 +#else +#define FENCE_MALLOC_ACTIVE 0 +#endif + /* Allocate memory that is bounded by protected pages, * so that out-of-bounds access will cause segfaults */ |