34 lines · c
1// SPDX-License-Identifier: GPL-2.0-only2/* Copyright (c) 2020 Facebook */3#include <stddef.h>4#include <linux/bpf.h>5#include <bpf/bpf_helpers.h>6#include "bpf_misc.h"7 8__attribute__ ((noinline))9int f1(struct __sk_buff *skb)10{11 return skb->len;12}13 14int f3(int, struct __sk_buff *skb);15 16__attribute__ ((noinline))17int f2(int val, struct __sk_buff *skb)18{19 return f1(skb) + f3(val, (void *)&val); /* type mismatch */20}21 22__attribute__ ((noinline))23int f3(int val, struct __sk_buff *skb)24{25 return skb->ifindex * val;26}27 28SEC("tc")29__failure __msg("expects pointer to ctx")30int global_func5(struct __sk_buff *skb)31{32 return f1(skb) + f2(2, skb) + f3(3, skb);33}34