BPF List
 help / color / mirror / Atom feed
From: Jiri Olsa <olsajiri@gmail.com>
To: Lennart Poettering <mzxreary@0pointer.net>
Cc: bpf@vger.kernel.org
Subject: Re: bpf kernel code leaks internal error codes to userspace
Date: Thu, 30 May 2024 14:18:45 +0200	[thread overview]
Message-ID: <Zlhupe1tXj8ZS1go@krava> (raw)
In-Reply-To: <Zlb-ojvGgdGZRvR8@gardel-login>

On Wed, May 29, 2024 at 12:08:34PM +0200, Lennart Poettering wrote:
> Hi!
> 
> It seems that the bpf code in the kernel sometimes leaks
> kernel-internal error codes, i.e. those from include/linux/errno.h
> into userspace (as opposed to those from
> include/uapi/asm-generic/errno.h which are public userspace facing
> API).
> 
> According to the comments from that internal header file: "These
> should never be seen by user programs."
> 
> Specifically, this is about ENOTSUPP, which userspace simply cannot
> handle, there's no error 524 defined in glibc or anywhere else.
> 
> We ran into this in systemd recently:
> 
> https://github.com/systemd/systemd/issues/32170#issuecomment-2076928761
> 
> (a google search reveals others were hit by this too)
> 
> We commited a work-around for this for now:
> 
> https://github.com/systemd/systemd/pull/33067
> 
> But it really sucks to work around this in userspace, this is a kernel
> internal definition after all, conflicting with userspace (where
> ENOTSUPP is just an alias for EOPNOTSUPP), hence not really fixable.
> 
> ENOSUPP is kinda useless anyway, since EOPNOTSUPP is pretty much
> equally expressive, and something userspace can actually handle.
> 
> Various kernel subsystems have been fixed over the years in similar
> situations. For example:
> 
> https://patchwork.kernel.org/project/linux-wireless/patch/20231211085121.3841b71c867d.Idf2ad01d9dfe8d6d6c352bf02deb06e49701ad1d@changeid/
> 
> or
> 
> https://patchwork.kernel.org/project/linux-media/patch/af5b2e8ac6695383111328267a689bcf1c0ecdb1.1702369869.git.sean@mess.org/
> 
> or
> 
> https://patchwork.ozlabs.org/project/linux-mtd/patch/20231129064311.272422-1-acelan.kao@canonical.com/
> 
> I think BPF should really fix that, too.

hm, I don't think we can change that, user space already depends
on those values and we'd break it with new value

it's unfortunate, but I don't think we can do much about that,
other than enforcing EOPNOTSUPP for new code

jirka

> 
> Or if you insist on leaking internals to userspace then please move
> the definition to the public "uapi" headers, but yikes you are in for
> some pain then given the conflicting userspace definitions.
> 
> Lennart
> 

  reply	other threads:[~2024-05-30 12:18 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-05-29 10:08 bpf kernel code leaks internal error codes to userspace Lennart Poettering
2024-05-30 12:18 ` Jiri Olsa [this message]
2024-05-30 14:17   ` Lennart Poettering
2024-05-30 17:09     ` Linus Torvalds
2024-05-31  7:16     ` Jiri Olsa
2024-05-31 17:10       ` Alexei Starovoitov

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=Zlhupe1tXj8ZS1go@krava \
    --to=olsajiri@gmail.com \
    --cc=bpf@vger.kernel.org \
    --cc=mzxreary@0pointer.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox