Daniel Micay
11207a9c98
add GitHub workflow for building and running tests
2021-09-30 01:17:08 -04:00
Daniel Micay
801e8d959f
disable mallinfo2 test for old glibc
2021-09-30 01:16:10 -04:00
Daniel Micay
8dfea34fc0
current AOSP stable branch is Android 11 QPR3
2021-09-05 01:59:45 -04:00
Daniel Micay
4d6456cf58
update libdivide to 5.0.0
2021-07-17 14:58:47 -04:00
Daniel Micay
be6dde66f9
fix missing include for Intel MPK support
2021-05-21 09:07:28 -04:00
Daniel Micay
e0ecacff45
drop support for legacy C++ versions
2021-05-21 09:00:39 -04:00
Daniel Micay
050871122b
update non-Android max_map_count recommendation
2021-05-13 19:50:35 -04:00
Daniel Micay
27fcfccb67
make __GLIBC_PREREQ check for mallinfo2 portable
2021-05-12 22:53:20 -04:00
Daniel Micay
93a87ce30b
add new mallinfo2 test to gitignore too
2021-05-12 21:13:06 -04:00
Daniel Micay
da190f1469
mark pvalloc error path as unlikely
2021-05-12 21:01:13 -04:00
Daniel Micay
b0f81365a8
reuse code for aligned allocation API entry points
2021-05-12 20:59:04 -04:00
Daniel Micay
c9820b6e37
mark alloc_aligned_simple error path unlikely
2021-05-12 20:41:46 -04:00
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