diff --git a/test/include/test/san.h b/test/include/test/san.h index 691dc508..da07865c 100644 --- a/test/include/test/san.h +++ b/test/include/test/san.h @@ -1,3 +1,11 @@ +#if defined(JEMALLOC_UAF_DETECTION) || defined(JEMALLOC_DEBUG) +# define TEST_SAN_UAF_ALIGN_ENABLE "lg_san_uaf_align:12" +# define TEST_SAN_UAF_ALIGN_DISABLE "lg_san_uaf_align:-1" +#else +# define TEST_SAN_UAF_ALIGN_ENABLE "" +# define TEST_SAN_UAF_ALIGN_DISABLE "" +#endif + static inline bool extent_is_guarded(tsdn_t *tsdn, void *ptr) { edata_t *edata = emap_edata_lookup(tsdn, &arena_emap_global, ptr); diff --git a/test/unit/tcache_max.c b/test/unit/tcache_max.c index 7b4217d6..1f657c85 100644 --- a/test/unit/tcache_max.c +++ b/test/unit/tcache_max.c @@ -1,4 +1,7 @@ #include "test/jemalloc_test.h" +#include "test/san.h" + +const char *malloc_conf = TEST_SAN_UAF_ALIGN_DISABLE; enum { alloc_option_start = 0, diff --git a/test/unit/tcache_max.sh b/test/unit/tcache_max.sh index 278c4ad5..4480d733 100644 --- a/test/unit/tcache_max.sh +++ b/test/unit/tcache_max.sh @@ -1,3 +1,3 @@ #!/bin/sh -export MALLOC_CONF="tcache_max:1024,lg_san_uaf_align:-1" +export MALLOC_CONF="tcache_max:1024" diff --git a/test/unit/uaf.c b/test/unit/uaf.c index 880aee4f..a8433c29 100644 --- a/test/unit/uaf.c +++ b/test/unit/uaf.c @@ -1,9 +1,13 @@ #include "test/jemalloc_test.h" #include "test/arena_util.h" +#include "test/san.h" #include "jemalloc/internal/cache_bin.h" +#include "jemalloc/internal/san.h" #include "jemalloc/internal/safety_check.h" +const char *malloc_conf = TEST_SAN_UAF_ALIGN_ENABLE; + static size_t san_uaf_align; static bool fake_abort_called; @@ -28,7 +32,7 @@ test_write_after_free_post(void) { static bool uaf_detection_enabled(void) { - if (!config_uaf_detection) { + if (!config_uaf_detection || !san_uaf_detection_enabled()) { return false; } diff --git a/test/unit/uaf.sh b/test/unit/uaf.sh deleted file mode 100644 index 5f12dcf6..00000000 --- a/test/unit/uaf.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh - -export MALLOC_CONF="lg_san_uaf_align:12"