brintos

brintos / linux-shallow public Read only

0
0
Text · 660 B · 8f755d2 Raw
35 lines · c
1// SPDX-License-Identifier: GPL-2.02 3#include <linux/bpf.h>4#include <bpf/bpf_helpers.h>5#include "bpf_misc.h"6 7SEC("socket")8__description("scalars: find linked scalars")9__failure10__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;					\23l1:						\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 34char _license[] SEC("license") = "GPL";35