aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Mendenhall <dpmendenhall@gmail.com>2020-04-20 14:24:47 -0700
committerDominik Maier <domenukk@gmail.com>2020-04-21 13:14:34 +0200
commitee238eb00d68b4f0aa6863ed58d2707746a18770 (patch)
tree2c4258c6e878af1632c957780347b16f3af0c301
parent45ccc7d475c9853fc48888f893c0896c6545d721 (diff)
downloadafl++-ee238eb00d68b4f0aa6863ed58d2707746a18770.tar.gz
Move comment about adding 8 bytes to buffer length to the line where we
actually add 8 bytes Remove defunct TODO for posix_memalign as the function now exists Add wrapper for malloc_usable_size
-rw-r--r--libdislocator/libdislocator.so.c17
1 files changed, 9 insertions, 8 deletions
diff --git a/libdislocator/libdislocator.so.c b/libdislocator/libdislocator.so.c
index 1fbfe9d6..72d280e6 100644
--- a/libdislocator/libdislocator.so.c
+++ b/libdislocator/libdislocator.so.c
@@ -183,6 +183,9 @@ static void *__dislocator_alloc(size_t len) {
else
rlen = len;
+ /* We will also store buffer length and a canary below the actual buffer, so
+ let's add 8 bytes for that. */
+
tlen = (1 + PG_COUNT(rlen + 8)) * PAGE_SIZE;
flags = MAP_PRIVATE | MAP_ANONYMOUS;
fd = -1;
@@ -200,9 +203,6 @@ static void *__dislocator_alloc(size_t len) {
(void)sp;
#endif
- /* We will also store buffer length and a canary below the actual buffer, so
- let's add 8 bytes for that. */
-
ret = (u8 *)mmap(NULL, tlen, PROT_READ | PROT_WRITE, flags, fd, 0);
#if defined(USEHUGEPAGE)
/* We try one more time with regular call */
@@ -296,10 +296,6 @@ void *calloc(size_t elem_len, size_t elem_cnt) {
}
-/* TODO: add a wrapper for posix_memalign, otherwise apps who use it,
- will fail when freeing the memory.
-*/
-
/* The wrapper for malloc(). Roughly the same, also clobbers the returned
memory (unlike calloc(), malloc() is not guaranteed to return zeroed
memory). */
@@ -468,6 +464,12 @@ void *reallocarray(void *ptr, size_t elem_len, size_t elem_cnt) {
}
+size_t malloc_usable_size(void *ptr) {
+
+ return PTR_L(ptr);
+
+}
+
__attribute__((constructor)) void __dislocator_init(void) {
u8 *tmp = (u8 *)getenv("AFL_LD_LIMIT_MB");
@@ -492,4 +494,3 @@ __attribute__((constructor)) void __dislocator_init(void) {
align_allocations = !!getenv("AFL_ALIGNED_ALLOC");
}
-