From: Stephen Hemminger <stephen@networkplumber.org>
To: Marat Khalili <marat.khalili@huawei.com>
Cc: Thomas Monjalon <thomas@monjalon.net>,
Konstantin Ananyev <konstantin.ananyev@huawei.com>,
<dev@dpdk.org>
Subject: Re: [PATCH v2 7/7] app/validate-bpf: add BPF validation application
Date: Mon, 14 Sep 2026 11:41:38 -0700 [thread overview]
Message-ID: <20260914114138.0b0b582d@phoenix.local> (raw)
In-Reply-To: <20260914145418.37353-8-marat.khalili@huawei.com>
On Mon, 14 Sep 2026 15:54:17 +0100
Marat Khalili <marat.khalili@huawei.com> wrote:
> Add a new DPDK application, dpdk-validate-bpf, for pre-validating eBPF
> programs for compatibility with the lib/bpf execution context.
>
> The application allows evaluating eBPF programs against the DPDK verifier
> before loading them into a real application. It includes an interactive
> debugging mode to trace state changes per instruction and understand the
> validator's decisions.
>
> Signed-off-by: Marat Khalili <marat.khalili@huawei.com>
> ---
I ran review of all outstanding BPF patches together.
This one had this feedback.
Patch 7/7 (app/validate-bpf: add BPF validation application)
app/validate-bpf/parse_decl.c:
+ arg->value.size *= array_length;
array_length comes from take_number() on the --xsym text with no
upper bound, and the multiply is not checked for overflow, so a
large length silently wraps to a small size that is then reported
to the validator as the object size. Reproduced:
dpdk-validate-bpf --xsym='uint64_t[2305843009213693953] v' \
--section=.text prog.o
Validation succeeded.
8 * 2305843009213693953 wraps to 8, so the tool accepts the
declaration and describes an 8-byte object. Clamp array_length,
or check the product, and reject with the usual text error.
next prev parent reply other threads:[~2026-09-14 18:41 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-11 10:39 [PATCH 0/7] validate-bpf: add standalone validation debug tool Marat Khalili
2026-09-11 10:39 ` [PATCH 1/7] bpf/validate: fix finished status on restart Marat Khalili
2026-09-11 10:40 ` [PATCH 2/7] bpf/validate: refactor internal step function Marat Khalili
2026-09-11 10:40 ` [PATCH 3/7] bpf/validate: formalize call back requirements Marat Khalili
2026-09-11 10:40 ` [PATCH 4/7] bpf/validate: add jump notification events Marat Khalili
2026-09-11 10:40 ` [PATCH 5/7] bpf/validate: add get current event API Marat Khalili
2026-09-11 10:40 ` [PATCH 6/7] app/test: add test for bpf validate debug events Marat Khalili
2026-09-11 10:40 ` [PATCH 7/7] app/validate-bpf: add BPF validation application Marat Khalili
2026-09-14 14:54 ` [PATCH v2 0/7] validate-bpf: add standalone validation debug tool Marat Khalili
2026-09-14 14:54 ` [PATCH v2 1/7] bpf/validate: fix finished status on restart Marat Khalili
2026-09-14 14:54 ` [PATCH v2 2/7] bpf/validate: refactor internal step function Marat Khalili
2026-09-14 14:54 ` [PATCH v2 3/7] bpf/validate: formalize call back requirements Marat Khalili
2026-09-14 14:54 ` [PATCH v2 4/7] bpf/validate: add jump notification events Marat Khalili
2026-09-14 14:54 ` [PATCH v2 5/7] bpf/validate: add get current event API Marat Khalili
2026-09-14 14:54 ` [PATCH v2 6/7] app/test: add test for bpf validate debug events Marat Khalili
2026-09-14 14:54 ` [PATCH v2 7/7] app/validate-bpf: add BPF validation application Marat Khalili
2026-09-14 18:41 ` Stephen Hemminger [this message]
2026-09-15 13:13 ` Stephen Hemminger
2026-09-14 18:42 ` [PATCH v2 0/7] validate-bpf: add standalone validation debug tool Stephen Hemminger
2026-09-15 19:27 ` Marat Khalili
2026-09-15 19:26 ` [PATCH v3 " Marat Khalili
2026-09-15 19:26 ` [PATCH v3 1/7] bpf/validate: fix finished status on restart Marat Khalili
2026-09-15 19:26 ` [PATCH v3 2/7] bpf/validate: refactor internal step function Marat Khalili
2026-09-15 19:26 ` [PATCH v3 3/7] bpf/validate: formalize call back requirements Marat Khalili
2026-09-15 19:26 ` [PATCH v3 4/7] bpf/validate: add jump notification events Marat Khalili
2026-09-15 19:26 ` [PATCH v3 5/7] bpf/validate: add get current event API Marat Khalili
2026-09-15 19:26 ` [PATCH v3 6/7] app/test: add test for bpf validate debug events Marat Khalili
2026-09-15 19:26 ` [PATCH v3 7/7] app/validate-bpf: add BPF validation application Marat Khalili
2026-09-16 16:36 ` Konstantin Ananyev
2026-09-17 14:35 ` [PATCH v4 0/7] validate-bpf: add standalone validation debug tool Marat Khalili
2026-09-17 14:35 ` [PATCH v4 1/7] bpf/validate: fix finished status on restart Marat Khalili
2026-09-17 14:35 ` [PATCH v4 2/7] bpf/validate: refactor internal step function Marat Khalili
2026-09-17 14:35 ` [PATCH v4 3/7] bpf/validate: formalize call back requirements Marat Khalili
2026-09-17 14:35 ` [PATCH v4 4/7] bpf/validate: add jump notification events Marat Khalili
2026-09-17 14:35 ` [PATCH v4 5/7] bpf/validate: add get current event API Marat Khalili
2026-09-17 14:35 ` [PATCH v4 6/7] app/test: add test for bpf validate debug events Marat Khalili
2026-09-17 14:35 ` [PATCH v4 7/7] app/validate-bpf: add BPF validation application Marat Khalili
2026-09-17 16:16 ` [PATCH v4 0/7] validate-bpf: add standalone validation debug tool Konstantin Ananyev
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260914114138.0b0b582d@phoenix.local \
--to=stephen@networkplumber.org \
--cc=dev@dpdk.org \
--cc=konstantin.ananyev@huawei.com \
--cc=marat.khalili@huawei.com \
--cc=thomas@monjalon.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.