#include <mach-o/loader.h>
#include <libkern/kernel_mach_header.h>
+#include <san/kasan.h>
#define KASLR_IOREG_DEBUG 0
rval = kmem_suballoc(kernel_map, (vm_offset_t *) &kext_alloc_base,
kext_alloc_size, /* pageable */ TRUE,
VM_FLAGS_FIXED|VM_FLAGS_OVERWRITE,
+ VM_MAP_KERNEL_FLAGS_NONE, VM_KERN_MEMORY_KEXT,
&g_kext_map);
if (rval != KERN_SUCCESS) {
panic("kext_alloc_init: kmem_suballoc failed 0x%x\n", rval);
* fixed (post boot) kext allocations to start looking for free space
* just past where prelinked kexts have loaded.
*/
- rval = mach_vm_map(g_kext_map,
+ rval = mach_vm_map_kernel(g_kext_map,
&addr,
size,
0,
flags,
+ VM_KERN_MEMORY_KEXT,
MACH_PORT_NULL,
0,
TRUE,
goto finish;
}
#else
- rval = mach_vm_allocate(g_kext_map, &addr, size, flags);
+ rval = mach_vm_allocate_kernel(g_kext_map, &addr, size, flags, VM_KERN_MEMORY_KEXT);
if (rval != KERN_SUCCESS) {
printf("vm_allocate failed - %d\n", rval);
goto finish;
*_addr = (vm_offset_t)addr;
rval = KERN_SUCCESS;
+#if KASAN
+ kasan_notify_address(addr, size);
+#endif
finish:
return rval;