DF-0144 / panic.txt
panic: kmem_slab_alloc(): kernel_map ran out of space!
cpuid = 0
Trace beginning at frame 0xfffff801182ff678
kmem_slab_alloc() at kmem_slab_alloc+0x42b 0xffffffff80656bab
kmem_slab_alloc() at kmem_slab_alloc+0x42b 0xffffffff80656bab
_kmalloc() at _kmalloc+0x5be 0xffffffff8065737e
_prop_object_copyin.isra.0() at _prop_object_copyin.isra.0+0x35 0xffffffff809dfe55
sys_vquotactl() at sys_vquotactl+0x50 0xffffffff806fd750
sys_xsyscall() at sys_xsyscall+0x89 0xffffffff80bd7039
Debugger("panic")
CPU0 stopping CPUs: 0x0000003e
stopped
Stopped at Debugger+0x7c: movb $0,0xbdaf09(%rip)
db>
# Trigger: unprivileged user (maxx, uid 1001) issuing syscall 530 (vquotactl)
# with an invalid pref pointer (0x1), on a kernel with vfs.quota_enabled=1.
# sys_vquotactl (vfs_quota.c:345) does error=copyin(vqa->pref,...) then
# overwrites error with prop_dictionary_copyin (line 346) WITHOUT checking the
# copyin result. The uninitialized/garbage struct plistref is passed to
# _prop_object_copyin, which interprets it as a serialized object and drives
# _kmalloc until kernel_map is exhausted -> panic.