diff options
author | Christopher Ferris <cferris@google.com> | 2019-03-07 11:18:27 -0800 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2019-03-07 11:18:27 -0800 |
commit | 6d4b137c1ffccc715f30440159cc003098659916 (patch) | |
tree | aa0802d01d19ed0891e6b77a732cc72ed5617dcc /libc/malloc_hooks/malloc_hooks.cpp | |
parent | bbe4a4dd482ccbd860863e929744b15f0259c484 (diff) | |
parent | 25b674fdec0a973fb09ecdbe0a2a3a0699c641cb (diff) |
Merge "Refactor the malloc_info code." am: ff16c0b89b
am: 25b674fdec
Change-Id: I53c8534ae42763a0812d36ab338c06c14309b348
Diffstat (limited to 'libc/malloc_hooks/malloc_hooks.cpp')
-rw-r--r-- | libc/malloc_hooks/malloc_hooks.cpp | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/libc/malloc_hooks/malloc_hooks.cpp b/libc/malloc_hooks/malloc_hooks.cpp index 715a6295b..07b668f08 100644 --- a/libc/malloc_hooks/malloc_hooks.cpp +++ b/libc/malloc_hooks/malloc_hooks.cpp @@ -29,6 +29,7 @@ #include <errno.h> #include <malloc.h> #include <stdint.h> +#include <stdio.h> #include <string.h> #include <sys/param.h> #include <unistd.h> @@ -57,6 +58,7 @@ ssize_t hooks_malloc_backtrace(void* pointer, uintptr_t* frames, size_t frame_co void hooks_free_malloc_leak_info(uint8_t* info); size_t hooks_malloc_usable_size(void* pointer); void* hooks_malloc(size_t size); +int hooks_malloc_info(int options, FILE* fp); void hooks_free(void* pointer); void* hooks_memalign(size_t alignment, size_t bytes); void* hooks_aligned_alloc(size_t alignment, size_t bytes); @@ -174,6 +176,10 @@ int hooks_mallopt(int param, int value) { return g_dispatch->mallopt(param, value); } +int hooks_malloc_info(int options, FILE* fp) { + return g_dispatch->malloc_info(options, fp); +} + void* hooks_aligned_alloc(size_t alignment, size_t size) { if (__memalign_hook != nullptr && __memalign_hook != default_memalign_hook) { if (!powerof2(alignment) || (size % alignment) != 0) { @@ -191,7 +197,7 @@ void* hooks_aligned_alloc(size_t alignment, size_t size) { int hooks_posix_memalign(void** memptr, size_t alignment, size_t size) { if (__memalign_hook != nullptr && __memalign_hook != default_memalign_hook) { - if (!powerof2(alignment)) { + if (alignment < sizeof(void*) || !powerof2(alignment)) { return EINVAL; } *memptr = __memalign_hook(alignment, size, __builtin_return_address(0)); |