File tree Expand file tree Collapse file tree 2 files changed +36
-0
lines changed
tools/testing/selftests/bpf Expand file tree Collapse file tree 2 files changed +36
-0
lines changed Original file line number Diff line number Diff line change 44
44
#include "verifier_ld_ind.skel.h"
45
45
#include "verifier_ldsx.skel.h"
46
46
#include "verifier_leak_ptr.skel.h"
47
+ #include "verifier_linked_scalars.skel.h"
47
48
#include "verifier_loops1.skel.h"
48
49
#include "verifier_lwt.skel.h"
49
50
#include "verifier_map_in_map.skel.h"
@@ -170,6 +171,7 @@ void test_verifier_jit_convergence(void) { RUN(verifier_jit_convergence); }
170
171
void test_verifier_ld_ind (void ) { RUN (verifier_ld_ind ); }
171
172
void test_verifier_ldsx (void ) { RUN (verifier_ldsx ); }
172
173
void test_verifier_leak_ptr (void ) { RUN (verifier_leak_ptr ); }
174
+ void test_verifier_linked_scalars (void ) { RUN (verifier_linked_scalars ); }
173
175
void test_verifier_loops1 (void ) { RUN (verifier_loops1 ); }
174
176
void test_verifier_lwt (void ) { RUN (verifier_lwt ); }
175
177
void test_verifier_map_in_map (void ) { RUN (verifier_map_in_map ); }
Original file line number Diff line number Diff line change
1
+ // SPDX-License-Identifier: GPL-2.0
2
+
3
+ #include <linux/bpf.h>
4
+ #include <bpf/bpf_helpers.h>
5
+ #include "bpf_misc.h"
6
+
7
+ SEC ("socket" )
8
+ __description ("scalars: find linked scalars" )
9
+ __failure
10
+ __msg ("math between fp pointer and 2147483647 is not allowed" )
11
+ __naked void scalars (void )
12
+ {
13
+ asm volatile (" \
14
+ r0 = 0; \
15
+ r1 = 0x80000001 ll; \
16
+ r1 /= 1; \
17
+ r2 = r1; \
18
+ r4 = r1; \
19
+ w2 += 0x7FFFFFFF; \
20
+ w4 += 0; \
21
+ if r2 == 0 goto l1; \
22
+ exit; \
23
+ l1: \
24
+ r4 >>= 63; \
25
+ r3 = 1; \
26
+ r3 -= r4; \
27
+ r3 *= 0x7FFFFFFF; \
28
+ r3 += r10; \
29
+ *(u8*)(r3 - 1) = r0; \
30
+ exit; \
31
+ " ::: __clobber_all );
32
+ }
33
+
34
+ char _license [] SEC ("license" ) = "GPL" ;
You can’t perform that action at this time.
0 commit comments