Daniel Micay
f1cdc1e484
remove disconcerting newline
2021-05-12 20:34:18 -04:00
Daniel Micay
26b74b87bf
improve code reuse for malloc API entry points
2021-05-12 20:28:50 -04:00
Daniel Micay
89faba4232
set errno in malloc_get_state to match glibc
2021-05-12 20:19:12 -04:00
Daniel Micay
a45dacc57b
add support for glibc mallinfo2
2021-05-12 20:07:15 -04:00
Daniel Micay
a71ab1a2eb
MREMAP_DONTUNMAP may be usable in realloc
2021-05-12 10:51:52 -04:00
Daniel Micay
96a322bcbe
raise max_map_count recommendation
2021-05-12 10:32:59 -04:00
Daniel Micay
92a1e456d2
use normal class region size on x86_64 Android
2021-05-12 05:11:30 -04:00
Daniel Micay
9706f5a311
increase class region size on Android to 2GiB
2021-05-12 03:07:33 -04:00
Daniel Micay
440489af67
purge memory if munmap fails
2021-05-12 01:05:39 -04:00
Daniel Micay
f9a8e7216b
purge slab memory even if using MAP_FIXED fails
2021-05-12 00:45:19 -04:00
Daniel Micay
5c974bdf82
use region quarantine even if MAP_FIXED call fails
...
This is a more sensible way of handling an out-of-memory failure in this
edge case. It doesn't matter much in practice.
2021-05-12 00:20:03 -04:00
Daniel Micay
2335f56713
add wrapper function for getting slot count
2021-05-10 07:04:50 -04:00
Daniel Micay
13a3aa16d0
improve naming of adjust_size_for_canaries
2021-05-07 04:23:49 -04:00
Daniel Micay
8bfa1a7dd5
use 1 slot for all extended size classes
...
This reduces memory usage and improves security in combination with the
guard slab feature.
2021-05-01 22:10:20 -04:00
Daniel Micay
3952645318
avoid unused variable for some configurations
2021-03-31 12:12:49 -04:00
Daniel Micay
1d15d34c7e
return errors from memory_set_name too
2021-03-22 14:19:02 -04:00
Daniel Micay
29ffcdf810
portable error reporting for memory API
2021-03-22 13:59:16 -04:00
Daniel Micay
f773a96b59
remove unnecessary sys/mman.h include
2021-03-22 12:25:22 -04:00
Daniel Micay
b84af9b499
add wrapper for madvise
2021-03-22 12:24:26 -04:00
Daniel Micay
73b78a8adb
document madvise for malloc_trim of quarantines
2021-03-22 11:17:00 -04:00
Daniel Micay
e77ffa76d9
add initial malloc_trim slab quarantine purging
...
This currently only purges the quarantines for extended size classes.
2021-03-22 11:16:57 -04:00
Daniel Micay
86b0b3e452
fix !CONFIG_EXTENDED_SIZE_CLASSES configuration
2021-03-21 18:09:02 -04:00
Daniel Micay
7b03b5c629
update README for region quarantine change
2021-03-18 07:35:38 -04:00
Daniel Micay
db21ecd529
use longer default region quarantine random array
2021-03-18 06:27:46 -04:00
Daniel Micay
ee55acf116
update libdivide to 4.0.0
2021-03-09 02:38:16 -05:00
Daniel Micay
a3b4c163eb
drop unused header
2021-03-05 00:35:10 -05:00
Daniel Micay
325b82f1bd
update to Android qpr2 branch as minimum
2021-03-01 16:52:30 -05:00
Daniel Micay
ddd14bc421
avoid type comparison warning on some platforms
2021-02-16 17:18:35 -05:00
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