mirror of
				https://github.com/GrapheneOS/hardened_malloc.git
				synced 2025-10-31 11:48:54 -04:00 
			
		
		
		
	 34b6754f70
			
		
	
	
		34b6754f70
		
	
	
	
	
		
			
			The tiny performance cost might as well be accepted now because this will be needed for Android Q. It's also quite possible that some apps make use of the features based on this including malloc_info.
		
			
				
	
	
		
			59 lines
		
	
	
	
		
			1.4 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			59 lines
		
	
	
	
		
			1.4 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| common_cflags = [
 | |
|     "-O3",
 | |
|     //"-flto",
 | |
|     "-fPIC",
 | |
|     "-fvisibility=hidden",
 | |
|     //"-fno-plt",
 | |
|     "-pipe",
 | |
|     "-Wall",
 | |
|     "-Wextra",
 | |
|     "-Wcast-align",
 | |
|     "-Wcast-qual",
 | |
|     "-Wwrite-strings",
 | |
|     "-DH_MALLOC_PREFIX",
 | |
|     "-DZERO_ON_FREE=true",
 | |
|     "-DWRITE_AFTER_FREE_CHECK=true",
 | |
|     "-DSLOT_RANDOMIZE=true",
 | |
|     "-DSLAB_CANARY=true",
 | |
|     "-DSLAB_QUARANTINE_RANDOM_LENGTH=1",
 | |
|     "-DSLAB_QUARANTINE_QUEUE_LENGTH=1",
 | |
|     "-DCONFIG_EXTENDED_SIZE_CLASSES=true",
 | |
|     "-DCONFIG_LARGE_SIZE_CLASSES=true",
 | |
|     "-DGUARD_SLABS_INTERVAL=1",
 | |
|     "-DGUARD_SIZE_DIVISOR=2",
 | |
|     "-DREGION_QUARANTINE_RANDOM_LENGTH=128",
 | |
|     "-DREGION_QUARANTINE_QUEUE_LENGTH=1024",
 | |
|     "-DREGION_QUARANTINE_SKIP_THRESHOLD=33554432", // 32MiB
 | |
|     "-DFREE_SLABS_QUARANTINE_RANDOM_LENGTH=32",
 | |
|     "-DCONFIG_CLASS_REGION_SIZE=1073741824", // 1GiB
 | |
|     "-DN_ARENA=1",
 | |
|     "-DCONFIG_STATS=true",
 | |
| ]
 | |
| 
 | |
| cc_defaults {
 | |
|     name: "hardened_malloc_defaults",
 | |
|     defaults: ["linux_bionic_supported"],
 | |
|     cflags: common_cflags,
 | |
|     conlyflags: ["-std=c11", "-Wmissing-prototypes"],
 | |
|     stl: "none",
 | |
| }
 | |
| 
 | |
| lib_src_files = [
 | |
|     "chacha.c",
 | |
|     "h_malloc.c",
 | |
|     "memory.c",
 | |
|     "pages.c",
 | |
|     "random.c",
 | |
|     "util.c",
 | |
| ]
 | |
| 
 | |
| cc_library_static {
 | |
|     name: "libhardened_malloc",
 | |
|     defaults: ["hardened_malloc_defaults"],
 | |
|     srcs: lib_src_files,
 | |
|     product_variables: {
 | |
|         debuggable: {
 | |
|             cflags: ["-DLABEL_MEMORY"],
 | |
|         },
 | |
|     },
 | |
| }
 |