Commit Graph

679 Commits

Author SHA1 Message Date
jvoisin
cff1d6d4b5 Add a test to prove that hardened_malloc handles too-large-to-be-true allocations
This pattern, used by https://github.com/kaist-hacking/HardsHeap,
uncovered bugs in other memory allocators.
2021-12-28 19:47:05 -05:00
jvoisin
75952581ee Silence a GCC warning
As suggested in https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66425#c34
2021-12-27 06:22:32 -05:00
jvoisin
a84d3f5310 Run the testsuite on musl as well in the CI 2021-12-27 06:22:32 -05:00
jvoisin
0655c1d024 Add a missing const 2021-12-26 18:19:59 -05:00
jvoisin
2b25c791ee Run the CI every day at 2am UTC
This should help to catch issues in newer versions
of distributions/packages.
2021-12-26 17:02:51 -05:00
jvoisin
e816c545ea Run the CI in clang 2021-12-26 16:29:18 -05:00
jvoisin
06192ae499 make clean is now thorough 2021-12-26 16:28:03 -05:00
Daniel Micay
4ccd6f16df always enable C++17
The safe_flag check doesn't work properly for C++ flags with Clang so
this wasn't getting enabled despite the conditional compilation being
removed from the code, leading to breaking Clang builds.
2021-12-26 16:26:38 -05:00
jvoisin
9966adbdad Add another ifdef for GNU extension 2021-12-23 14:45:43 -05:00
jvoisin
769e01fc4b Don't use mallinfo on non-android and non-glibc 2021-12-23 14:38:29 -05:00
Daniel Micay
460fef456d only Android 12 is supported 2021-12-13 19:42:40 -05:00
Daniel Micay
1a650b0317 update copyright notice 2021-12-13 19:42:33 -05:00
Lelmister101
fa46a7a85d small typo fix
“expanded cover” changed to “expanded to cover”
2021-12-05 09:52:50 -05:00
Daniel Micay
d8817417cc use compiler extension instead of C11 noreturn
C11 noreturn isn't available in C++.
2021-11-23 16:00:06 -05:00
Daniel Micay
7106bff27f update required dependencies 2021-11-23 15:53:03 -05:00
Lelmister101
1bdbb2d3f7 minor typo fix
“entirely independently arenas” changed to “entirely independent arenas”
2021-11-23 15:39:53 -05:00
Thibaut Sautereau
a33d2ca97d Fix CPPFLAGS in test Makefile
In particular, the _GNU_SOURCE feature test macro needs to be set in
order to correctly define mmap(2) flags such as MAP_ANONYMOUS.
Otherwise, compilation of some test files fails when CPPFLAGS is not
defined in the initial user environment, as Make then does not export it
from the root Makefile to the sub-make.
2021-11-02 16:13:09 -04:00
Daniel Micay
aa94408cc2 fix wording 2021-10-19 23:52:18 -04:00
Daniel Micay
8f9305df57 Android 12 is supported 2021-10-08 13:44:28 -04:00
anupritaisno1
cc0a1e1736 make hardened malloc vendor ramdisk avaiable
Signed-off-by: anupritaisno1 <www.anuprita804@gmail.com>
2021-10-08 13:43:11 -04:00
Daniel Micay
3b72a4f810 set C / C++ standard parameter for clang-tidy 2021-09-30 11:05:47 -04:00
Daniel Micay
e41d37c3de remove unnecessary else 2021-09-30 10:57:05 -04:00
Daniel Micay
23969727d8 disable readability-function-cognitive-complexity 2021-09-30 10:55:12 -04:00
Daniel Micay
4d30b491e3 set up dependabot for GitHub Actions 2021-09-30 01:18:36 -04:00
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