1*57e88926SAndrii Nakryiko // SPDX-License-Identifier: GPL-2.0 2*57e88926SAndrii Nakryiko /* Copyright (c) 2021 Facebook */ 3*57e88926SAndrii Nakryiko 4*57e88926SAndrii Nakryiko #include <linux/bpf.h> 5*57e88926SAndrii Nakryiko #include <bpf/bpf_helpers.h> 6*57e88926SAndrii Nakryiko 7*57e88926SAndrii Nakryiko int a[4]; 8*57e88926SAndrii Nakryiko const volatile int off = 4000; 9*57e88926SAndrii Nakryiko 10*57e88926SAndrii Nakryiko SEC("raw_tp/sys_enter") good_prog(const void * ctx)11*57e88926SAndrii Nakryikoint good_prog(const void *ctx) 12*57e88926SAndrii Nakryiko { 13*57e88926SAndrii Nakryiko a[0] = (int)(long)ctx; 14*57e88926SAndrii Nakryiko return a[1]; 15*57e88926SAndrii Nakryiko } 16*57e88926SAndrii Nakryiko 17*57e88926SAndrii Nakryiko SEC("raw_tp/sys_enter") bad_prog(const void * ctx)18*57e88926SAndrii Nakryikoint bad_prog(const void *ctx) 19*57e88926SAndrii Nakryiko { 20*57e88926SAndrii Nakryiko /* out of bounds access */ 21*57e88926SAndrii Nakryiko return a[off]; 22*57e88926SAndrii Nakryiko } 23*57e88926SAndrii Nakryiko 24*57e88926SAndrii Nakryiko char _license[] SEC("license") = "GPL"; 25