mirror of
https://github.com/xdp-project/bpf-examples.git
synced 2024-05-06 15:54:53 +00:00
pping: Attempt to be nice to verifier...
Verifier might have rejected XDP program due to opt_size being loaded from memory, see https://blog.path.net/ebpf-xdp-and-network-security. Add check of opt_size to attempt to convince verifier that it's not a negative value or anything else crazy. Leads to verifier instead thinking the program is too large (over 1m instructions). Signed-off-by: Simon Sundberg <simon.sundberg@kau.se>
This commit is contained in:
@@ -107,6 +107,8 @@ static int parse_tcp_ts(struct tcphdr *tcph, void *data_end, __u32 *tsval,
|
||||
}
|
||||
|
||||
// Some other TCP option - advance option-length bytes
|
||||
if (opt_size < 0 || opt_size > 34) // Try to convince verifier that opt-size can't be something crazy - leads to program being too large instead...
|
||||
return -1;
|
||||
pos += opt_size;
|
||||
}
|
||||
return -1;
|
||||
|
||||
Reference in New Issue
Block a user