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 Nakryiko int 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 Nakryiko int 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