Index: sys/sparc64/sparc64/sys_machdep.c =================================================================== --- sys/sparc64/sparc64/sys_machdep.c (wersja 255320) +++ sys/sparc64/sparc64/sys_machdep.c (kopia robocza) @@ -71,7 +71,7 @@ default: #ifdef KTRACE if (KTRPOINT(td, KTR_CAPFAIL)) - ktrcapfail(CAPFAIL_SYSCALL, 0, 0); + ktrcapfail(CAPFAIL_SYSCALL, NULL, NULL); #endif return (ECAPMODE); } Index: sys/i386/i386/sys_machdep.c =================================================================== --- sys/i386/i386/sys_machdep.c (wersja 255320) +++ sys/i386/i386/sys_machdep.c (kopia robocza) @@ -132,7 +132,7 @@ default: #ifdef KTRACE if (KTRPOINT(td, KTR_CAPFAIL)) - ktrcapfail(CAPFAIL_SYSCALL, 0, 0); + ktrcapfail(CAPFAIL_SYSCALL, NULL, NULL); #endif return (ECAPMODE); } Index: sys/amd64/amd64/sys_machdep.c =================================================================== --- sys/amd64/amd64/sys_machdep.c (wersja 255320) +++ sys/amd64/amd64/sys_machdep.c (kopia robocza) @@ -209,7 +209,7 @@ default: #ifdef KTRACE if (KTRPOINT(td, KTR_CAPFAIL)) - ktrcapfail(CAPFAIL_SYSCALL, 0, 0); + ktrcapfail(CAPFAIL_SYSCALL, NULL, NULL); #endif return (ECAPMODE); } Index: sys/arm/arm/sys_machdep.c =================================================================== --- sys/arm/arm/sys_machdep.c (wersja 255320) +++ sys/arm/arm/sys_machdep.c (kopia robocza) @@ -138,7 +138,7 @@ default: #ifdef KTRACE if (KTRPOINT(td, KTR_CAPFAIL)) - ktrcapfail(CAPFAIL_SYSCALL, 0, 0); + ktrcapfail(CAPFAIL_SYSCALL, NULL, NULL); #endif return (ECAPMODE); } Index: sys/kern/kern_ktrace.c =================================================================== --- sys/kern/kern_ktrace.c (wersja 255320) +++ sys/kern/kern_ktrace.c (kopia robocza) @@ -37,6 +37,7 @@ #include "opt_ktrace.h" #include +#include #include #include #include @@ -791,8 +792,14 @@ return; kcf = &req->ktr_data.ktr_cap_fail; kcf->cap_type = type; - kcf->cap_needed = *needed; - kcf->cap_held = *held; + if (needed != NULL) + kcf->cap_needed = *needed; + else + cap_rights_init(&kcf->cap_needed); + if (held != NULL) + kcf->cap_held = *held; + else + cap_rights_init(&kcf->cap_held); ktr_enqueuerequest(td, req); ktrace_exit(td); } Index: sys/kern/vfs_lookup.c =================================================================== --- sys/kern/vfs_lookup.c (wersja 255320) +++ sys/kern/vfs_lookup.c (kopia robocza) @@ -178,7 +178,7 @@ if (ndp->ni_dirfd == AT_FDCWD) { #ifdef KTRACE if (KTRPOINT(td, KTR_CAPFAIL)) - ktrcapfail(CAPFAIL_LOOKUP, 0, 0); + ktrcapfail(CAPFAIL_LOOKUP, NULL, NULL); #endif error = ECAPMODE; } @@ -284,7 +284,7 @@ if (ndp->ni_strictrelative != 0) { #ifdef KTRACE if (KTRPOINT(curthread, KTR_CAPFAIL)) - ktrcapfail(CAPFAIL_LOOKUP, 0, 0); + ktrcapfail(CAPFAIL_LOOKUP, NULL, NULL); #endif return (ENOTCAPABLE); } @@ -640,7 +640,7 @@ if (ndp->ni_strictrelative != 0) { #ifdef KTRACE if (KTRPOINT(curthread, KTR_CAPFAIL)) - ktrcapfail(CAPFAIL_LOOKUP, 0, 0); + ktrcapfail(CAPFAIL_LOOKUP, NULL, NULL); #endif error = ENOTCAPABLE; goto bad;