More strict error checking in bpf_asm?

2 messages, 2 authors, 2021-02-23 · open the first message on its own page

More strict error checking in bpf_asm?

From: Ian Denhardt <hidden>
Date: 2021-02-23 20:28:23

Hi,

I'm using the `bpf_asm` tool to do some syscall filtering, and found out
the hard way that its error checking isn't very strict. In particular,
it issues a warning (not an error) when a jump offset overflows the
instruction's field. It really seems like this *ought* to be a hard
error, but I see from the commit message in
7e22077d0c73a68ff3fd8b3d2f6564fcbcf8cb23 that this was left as a warning
due to backwards compatibility concerns.

I'm skeptical of this trade-off, but would people at least be open to
adding a -Werror flag or the like, if changing it to a hard error
unconditionally is off the table?

Relatedly, while looking through the code I noticed there are several
places where an error occurs that does cause to tool to exit without
generating code, but it exits with 0 (success) status code. It seems
like this ought to report a failure to the caller?

-Ian

Re: More strict error checking in bpf_asm?

From: Ilya Leoshkevich <iii@linux.ibm.com>
Date: 2021-02-23 20:48:50

On Tue, 2021-02-23 at 15:26 -0500, Ian Denhardt wrote:
Hi,

I'm using the `bpf_asm` tool to do some syscall filtering, and found
out
the hard way that its error checking isn't very strict. In particular,
it issues a warning (not an error) when a jump offset overflows the
instruction's field. It really seems like this *ought* to be a hard
error, but I see from the commit message in
7e22077d0c73a68ff3fd8b3d2f6564fcbcf8cb23 that this was left as a
warning
due to backwards compatibility concerns.
My 2c: when I was writing that commit, I did not have any specific
examples of code that would break in mind - that was pure
speculation/paranoia. So it's OK from my perspective to convert this
fprintf to a hard error.

[...]
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help