Daniel Micay
29b09648d6
avoid undefined clz and shift in edge cases
...
This is triggered when get_large_size_class is called with a size in the
range [1,4]. This can occur with aligned_alloc(8192, size). In practice,
it doesn't appear to cause any harm, but we shouldn't have any undefined
behavior for well-defined usage of the API. It also occurs if the caller
passes a pointer outside the slab region to free_sized but the expected
size is in the range [1,4]. That usage of free_sized is already going to
be considered undefined, but we should avoid undefined behavior in the
caller from triggering more undefined behavior when it's avoidable.
2021-02-16 08:31:17 -05:00
Thibaut Sautereau
1984cb3b3d
malloc_object_size: avoid fault for invalid region
...
It's the region pointer that can be NULL here, and p was checked at the
beginning of the function.
2021-02-10 17:43:36 -05:00
Thibaut Sautereau
76860c72e1
malloc_usable_size: clean abort on invalid region
...
It's the region pointer that can be NULL here, and p was checked at the
beginning of the function. Also fix the test accordingly.
2021-02-10 17:41:17 -05:00
Daniel Micay
5c8b686370
update copyright notice
2021-01-06 20:38:55 -05:00
Daniel Micay
5275563252
fix C++ sized deallocation check false positive
...
This is a compatibility issue triggered when both slab canaries and the
C++ allocator overloads providing sized deallocation checks are enabled.
The boundary where slab allocations are turned into large allocations
due to not having room for the canary in the largest slab allocation
size class triggers a false positive in the sized deallocation check.
2021-01-06 00:18:59 -05:00
Daniel Micay
e9d9f70ad4
update supported Android 11 branch
2020-12-07 18:14:25 -05:00
Daniel Micay
10c5d61187
work around glibc bug in mallinfo test
2020-11-10 14:14:08 -05:00
Daniel Micay
b90f650153
fix sized deallocation check with large sizes
...
The CONFIG_CXX_ALLOCATOR feature enables sanity checks for sized
deallocation and this wasn't updated to handle the introduction of
performing size class rounding for large sizes.
2020-11-10 13:53:32 -05:00
Daniel Micay
8d0314295e
support Android's logging system for fatal_error
2020-10-19 07:51:00 -04:00
Daniel Micay
b072022022
perform init sanity checks before MPK unsealing
2020-10-06 17:34:35 -04:00
Daniel Micay
2bb1c39d31
add MPK support for stats retrieval functions
2020-10-06 17:32:25 -04:00
Daniel Micay
0bf18b7c26
optimize malloc_usable_size enforce_init
2020-10-03 15:10:49 -04:00
Daniel Micay
178d4f320f
harden checks for uninitialized usage
2020-10-02 15:06:29 -04:00
Daniel Micay
b9ebf47c7c
explicitly use python3 to run tests
2020-09-19 09:40:56 -04:00
Daniel Micay
8906c0941a
improve mallinfo test
2020-09-18 11:38:06 -04:00
Daniel Micay
59e174eee0
update stats documentation
2020-09-17 17:44:01 -04:00
Daniel Micay
483b1d7b8b
empty malloc_info output when stats are disabled
2020-09-17 17:42:18 -04:00
Daniel Micay
96eca21ac5
remove thread_local macro workaround glibc < 2.28
2020-09-17 17:38:40 -04:00
Daniel Micay
022b64791e
whitespace fixes
2020-09-17 17:23:13 -04:00
Daniel Micay
b4bbd09f07
change label for quarantined large allocations
2020-09-17 16:56:01 -04:00
Daniel Micay
a88305c01b
support disabling region quarantine
2020-09-17 16:53:34 -04:00
Daniel Micay
85c5c3736c
add stats tracking to special large realloc paths
2020-09-17 16:29:13 -04:00
Daniel Micay
96a9bcf3a1
move deprecated glibc extensions to the bottom
2020-09-17 16:20:05 -04:00
Daniel Micay
41fb89517a
simplify malloc_info code
2020-09-17 16:10:02 -04:00
Daniel Micay
50e0f1334c
add is_init check to malloc_info
2020-09-17 16:07:10 -04:00
Daniel Micay
9fb2791af2
add is_init check to h_mallinfo_arena_info
2020-09-17 16:00:03 -04:00
anupritaisno1
8974af86d1
hardened malloc: iterate -> malloc_iterate
...
Signed-off-by: anupritaisno1 <www.anuprita804@gmail.com>
2020-09-15 00:37:23 -04:00
anupritaisno1
d203d6c445
Android.bp: export hardened malloc headers
...
Signed-off-by: anupritaisno1 <www.anuprita804@gmail.com>
2020-09-14 07:21:57 -04:00
Daniel Micay
9f5e1f6eb9
master is only going to support Android 11
2020-09-14 05:57:39 -04:00
Daniel Micay
1cba254452
move external API to include directory
2020-09-14 05:52:53 -04:00
anupritaisno1
730f148647
Android.bp: make hardened malloc ramdisk available
...
Signed-off-by: anupritaisno1 <www.anuprita804@gmail.com>
2020-09-13 05:14:25 -04:00
Daniel Micay
dd7291ebfe
better wording for page size mismatch error
2020-08-05 18:10:53 -04:00
Daniel Micay
bcb93cab63
avoid an ifdef
2020-08-04 17:22:03 -04:00
rwarr627
f214bd541a
added check for if small allocations are free
2020-06-17 23:29:30 -04:00
rwarr627
7804e263e9
added tests for if malloc_object_size small allocations are free
2020-06-17 23:29:30 -04:00
Daniel Micay
de3fb50dcc
tests: make no-optimize attribute Clang compatible
2020-06-17 20:08:46 -04:00
Daniel Micay
b404d6da6e
fix out-of-memory check in offset test
2020-06-17 16:27:59 -04:00
Daniel Micay
c9c7dca498
use size_t in offset test to fix warning
2020-06-17 16:26:08 -04:00
Daniel Micay
dcc80a01db
android10-qpr3-release
2020-06-16 11:10:13 -04:00
Daniel Micay
722974f4e9
remove trailing whitespace
2020-06-13 09:59:50 -04:00
rwarr627
195bc8c92a
added tests for malloc_object_size
...
LDFLAGS is on single line
2020-06-13 01:27:32 -04:00
rwarr627
577524798e
calculates offset from start for small allocations
2020-06-13 01:27:32 -04:00
Daniel Micay
467ba8440f
add comment explaining slab cache size
2020-05-24 09:36:43 -04:00
Daniel Micay
067b3c864f
set slab cache sizes based on the largest slab
2020-05-24 09:31:02 -04:00
Daniel Micay
82440e78d9
silence annoying tidy checks
2020-05-18 19:10:14 -04:00
Daniel Micay
fc0bd78215
default number of arenas is currently 4
2020-05-13 03:48:44 -04:00
Daniel Micay
08a5f5ee0b
reduces empty slab cache size now too
2020-05-13 03:19:17 -04:00
Daniel Micay
e82367e1bf
include leaner sample configurations
2020-05-13 03:11:23 -04:00
Daniel Micay
4a6bbe445c
limit cached slabs based on max size class
2020-05-13 01:05:37 -04:00
Daniel Micay
cf55ac0f6d
disable annoying Clang warning from avoiding ifdef
2020-04-30 18:14:40 -04:00