Commit Graph

652 Commits

Author SHA1 Message Date
Daniel Micay 8f38bbdee6 add configuration for self-init
This needs to be disabled for compatibility with the exploit protection
compatibility mode on GrapheneOS. hardened_malloc shouldn't be trying to
initialize itself when exploit protection compatibility mode is enabled.
This has to be handled in our Bionic integration instead.
2022-09-14 03:41:31 -04:00
Daniel Micay dd427cb3b8 arm64 page table / page size docs 2022-09-08 23:17:25 -04:00
Daniel Micay b5dd9d11d9 raise class region size to 32GB for arm64 Android 2022-09-08 23:13:15 -04:00
Daniel Micay 72fb3576f5 Android 13 is now all we'll be supporting 2022-08-16 07:48:47 -04:00
Dmitry Muhomor f8fec401c7 update Android.bp for Android 13 2022-08-16 07:46:44 -04:00
Daniel Micay 0d6d63cbe7 improve package installation for CI 2022-03-11 22:09:13 -05:00
dependabot[bot] 8fd31e4bc1 Bump actions/checkout from 2 to 3
Bumps [actions/checkout](https://github.com/actions/checkout) from 2 to 3.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v2...v3)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-02 13:44:16 -05:00
jvoisin b511696c55 clean up includes and remove non-portable includes
This marginally increases the portability of hardened_malloc,
eg. on OSX.
2022-02-07 07:14:51 -05:00
jvoisin 943704de7c Remove __pycache__ as well in `make clean` 2022-02-06 18:56:56 -05:00
jvoisin 04a86566c3 Don't depend on gcc_s 2022-01-28 14:59:58 -05:00
Daniel Micay 448170a412 fix case for non-macro constant 2022-01-21 23:59:37 -05:00
Daniel Micay 995ce07d45 add is_init likely/unlikely markers 2022-01-21 19:46:49 -05:00
Daniel Micay c9d1abcd7e explicitly mark fatal error conditions unlikely 2022-01-21 19:45:05 -05:00
Daniel Micay 8f0b252c33 mark more out-of-memory conditions as unlikely 2022-01-21 19:03:02 -05:00
Daniel Micay 3cffc1e1af treat zero size malloc as unlikely
Calls to malloc with a zero size are extremely rare relative to normal
usage of the API. It's generally only done by inefficient C code with
open coded dynamic array implementations where they aren't handling zero
size as a special case for their usage of malloc/realloc. Efficient code
wouldn't be making these allocations. It doesn't make sense to optimize
for the performance of rare edge cases caused by inefficient code.
2022-01-21 18:27:04 -05:00
Daniel Micay ae2524bf88 ignore environment for test Makefile variables 2022-01-21 16:24:49 -05:00
Daniel Micay e28addda19 add back gitignore entries 2022-01-21 15:07:13 -05:00
Daniel Micay 9d89712386 remove extra newline 2022-01-21 15:06:29 -05:00
jvoisin 84eadd8568 Move memory corruption tests up a directory 2022-01-21 15:00:18 -05:00
Daniel Micay 0bbcc5d610 malloc.c was renamed to h_malloc.c 2022-01-19 16:42:12 -05:00
jvoisin 3fa30842ed Use $(MAKE) instead of make in Makefiles
This will pass the correct flags to the make
invocations.
2022-01-17 16:21:00 -05:00
Daniel Micay b3d78bd5f6 use static const for local constants 2022-01-16 21:02:17 -05:00
Daniel Micay 8d61e63274 add comment about special small size classes 2022-01-16 20:50:49 -05:00
Daniel Micay 422ee78b3e reorganize pages.h header 2022-01-16 16:57:22 -05:00
Daniel Micay 3e312695e1 document clz64/log2u64 not being able to handle 0 2022-01-16 16:28:49 -05:00
Daniel Micay 81cf2f27a0 calculate slab size class instead of array loop 2022-01-16 16:18:14 -05:00
Daniel Micay d8cb2d9f7a use consistent wrappers around clz/ffs 2022-01-16 15:39:59 -05:00
Daniel Micay 86f9c739ee define constant for u64 bit width 2022-01-16 15:06:36 -05:00
Daniel Micay 536f852538 reuse a single size alignment implementation 2022-01-16 14:44:28 -05:00
Daniel Micay e814cf4f5c enable linking optimization for GNU linker 2022-01-16 12:18:00 -05:00
Daniel Micay 705211ef49 define UBSan flags for SHARED_FLAGS to reuse it 2022-01-16 11:50:55 -05:00
Daniel Micay 189d3362d5 enable sized deallocation ABI for consistency 2022-01-16 11:49:51 -05:00
Daniel Micay e2bcf4a356 stop silencing constant logical operand warning
This was resolved by 3696f071a4.
2022-01-13 14:51:22 -05:00
Daniel Micay d470ae56a5 switch Android build to C17 from C11 2022-01-13 14:48:56 -05:00
Daniel Micay 42b097f3b0 CONFIG_SEAL_METADATA is regularly tested now 2022-01-13 14:25:41 -05:00
Daniel Micay 17891d743e switch from c11 to c17 standard 2022-01-12 10:20:47 -05:00
Daniel Micay efd71e70c7 update documentation based on light configuration 2022-01-12 08:58:00 -05:00
Daniel Micay a6d27848af wrap overly long line 2022-01-12 08:44:39 -05:00
Daniel Micay 110126d7f0 README: fix path to configuration templates 2022-01-12 08:43:36 -05:00
Daniel Micay a2bdb4da27 update gitignore for renamed / added tests 2022-01-12 08:41:21 -05:00
Daniel Micay 0c0561e563 update gitignore for config template system 2022-01-12 08:41:12 -05:00
Daniel Micay 5a577e9ee0 document configuration template system 2022-01-12 08:38:33 -05:00
Daniel Micay b3372e1576 add configuration template system 2022-01-10 04:47:01 -05:00
jvoisin 052b756840 Fix two warnings 2022-01-09 08:50:46 -05:00
jvoisin 001eb0687b Fix an unused parameter warning 2022-01-04 12:16:53 -05:00
Daniel Micay 2a5662948e rename bitmap manipulation functions 2022-01-04 12:14:55 -05:00
Daniel Micay d1c39edc9b use const for malloc_object_size API 2022-01-04 10:14:41 -05:00
Daniel Micay aa1746a90d alloc_size attribute for legacy valloc function 2022-01-04 10:04:26 -05:00
Daniel Micay f3efc26638 add malloc attribute where appropriate 2022-01-04 09:56:29 -05:00
jvoisin 78cbb964d4 Add alloc_size and alloc_align attributes
This should help a bit the compiler to emit better diagnostics and to improve
the correctness of `__builtin_object_size`.

See https://clang.llvm.org/docs/AttributeReference.html#alloc-size
and https://clang.llvm.org/docs/AttributeReference.html#alloc-align
2022-01-04 09:45:20 -05:00