diff --git a/external/ebpf-verifier b/external/ebpf-verifier index 15665f92d..69336f7d1 160000 --- a/external/ebpf-verifier +++ b/external/ebpf-verifier @@ -1 +1 @@ -Subproject commit 15665f92deaee08ff3618ef2c793f921af2ea27e +Subproject commit 69336f7d1382d5a88c8271c6b95ce4c064ec4be2 diff --git a/vm/ubpf_vm.c b/vm/ubpf_vm.c index a61ef2454..4d2e670b7 100644 --- a/vm/ubpf_vm.c +++ b/vm/ubpf_vm.c @@ -444,7 +444,7 @@ ubpf_check_shadow_stack( uintptr_t stack_end = stack_start + stack_length; if (access_start > access_end) { - // Overflow + // Not a stack location. return true; } @@ -929,8 +929,7 @@ ubpf_exec_ex( do { \ if (!ubpf_check_shadow_stack( \ vm, stack_start, stack_length, shadow_stack, (char*)reg[inst.src] + inst.offset, size)) { \ - return_value = -1; \ - goto cleanup; \ + shadow_registers &= ~REGISTER_TO_SHADOW_MASK(inst.dst); \ } \ if (!bounds_check( \ vm, \