Function report

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:kernel\bpf\verifier.c Create Date:2022-07-28 13:03:01
Last Modify:2022-05-19 20:02:10 Copyright©Brick
home page Tree
Annotation kernel can get tool activityDownload SCCTChinese

Name:stacksafe

Proto:static bool stacksafe(struct bpf_func_state *old, struct bpf_func_state *cur, struct idpair *idmap)

Type:bool

Parameter:

TypeParameterName
struct bpf_func_state *old
struct bpf_func_state *cur
struct idpair *idmap
7207  When i < allocated_stack cycle
7208  spi = i / size of eBPF register in bytes
7210  If Not (live & REG_LIVE_READ) Then
7213  Continue
7216  If slot_type[i % size of eBPF register in bytes ] == nothing was stored in this stack slot Then Continue
7222  If i >= allocated_stack Then Return false
7229  If slot_type[i % size of eBPF register in bytes ] == BPF program wrote some data into this slot && slot_type[i % size of eBPF register in bytes ] == BPF program wrote constant zero Then Continue
7232  If slot_type[i % size of eBPF register in bytes ] != slot_type[i % size of eBPF register in bytes ] Then Return false
7240  If i % size of eBPF register in bytes Then Continue
7242  If slot_type[0] != register spilled into stack Then Continue
7244  If Not Returns true if (rold safe implies rcur safe) Then Return false
7259  Return true
Caller
NameDescribe
func_states_equalmpare two verifier states* all states stored in state_list are known to be valid, since* verifier reached 'bpf_exit' instruction through them* this function is called when verifier exploring different branches of* execution popped from the state stack