linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Matthew Wilcox <willy@infradead.org>
To: Alejandro Colomar <alx@kernel.org>
Cc: David Howells <dhowells@redhat.com>,
	Eric Biederman <ebiederm@xmission.com>,
	Kees Cook <keescook@chromium.org>,
	linux-mm@kvack.org, Rolf Eike Beer <eb@emlix.com>,
	Arnd Bergmann <arnd@arndb.de>,
	Thomas Gleixner <tglx@linutronix.de>,
	"Paul E. McKenney" <paulmck@linux.vnet.ibm.com>,
	Dave Jones <davej@redhat.com>
Subject: Re: 'struct dynamic': struct tag leak in UAPI headers
Date: Tue, 29 Aug 2023 15:17:46 +0100	[thread overview]
Message-ID: <ZO3+Clf1WjBWA4Ty@casper.infradead.org> (raw)
In-Reply-To: <e8234066-1efd-fbb0-3b66-4514eb0b0d68@kernel.org>

On Tue, Aug 29, 2023 at 03:27:16PM +0200, Alejandro Colomar wrote:
> > It was introduced before git, so trawling through linux-fullhistory ....
> 
> 
> diff --git a/include/linux/elf.h b/include/linux/elf.h
> -typedef struct dynamic{
> --
> diff --git a/include/uapi/linux/elf.h b/include/uapi/linux/elf.h
> +typedef struct dynamic{
> 
> 
> Hmm, I thought that commit was the one that moved it from an internal header
> to a UAPI one.  I didn't know include/linux/elf.h was a public header long ago.

Ooh, story time!  Long, long ago, we did not separate "Linux headers"
from "libc headers".  It used to be somebody's job to take the files
in /usr/src/linux/include/linux and copy them to /usr/include/linux.
Bold people used a symlink.  People who cared about things like "Well,
POSIX says that" would edit the files after copying them to remove things
that POSIX said shouldn't be there or put _GNU_SOURCE markers around them.

At some point, we decided to split the headers to create the uapi headers
to make this job easier.  Refinements are, of course, possible, and now
easier than ever, but I think it's fair to say that anybody who included
<linux/elf.h> at any time in history got given a struct dynamic.

> Might be true.  But since it's a compile-time failure, it's not going to
> cause silent bugs.  If there was a real regression, it would be trivial to
> detect and fix, so maybe it's a risk that can be taken.  But yeah, your
> concern may vary.  :)

Well, it's a compile-time failure either way.  Code that depended on it
is compiling happily today, and the code that would want to use it
doesn't exist yet, so I'd rather err on the side of keeping code written
in the last 30 years working.





  reply	other threads:[~2023-08-29 14:18 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-08-29 12:08 'struct dynamic': struct tag leak in UAPI headers Alejandro Colomar
2023-08-29 12:24 ` Matthew Wilcox
2023-08-29 13:27   ` Alejandro Colomar
2023-08-29 14:17     ` Matthew Wilcox [this message]
2023-08-29 14:20       ` Alejandro Colomar
2023-08-29 16:48         ` Eric W. Biederman
2023-08-29 17:46           ` Alejandro Colomar
     [not found] ` <20230829185121.326228-1-alx@kernel.org>
     [not found]   ` <6bd4800d-5e99-48a0-a407-2213112f4fb2@kernel.org>
     [not found]     ` <202309220940.B2730B3B@keescook>
2023-09-22 16:44       ` Ping: [PATCH v1] elf, uapi: Remove struct tag 'dynamic' Kees Cook
2023-09-22 17:01         ` Alejandro Colomar
2023-09-22 17:03   ` Kees Cook

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=ZO3+Clf1WjBWA4Ty@casper.infradead.org \
    --to=willy@infradead.org \
    --cc=alx@kernel.org \
    --cc=arnd@arndb.de \
    --cc=davej@redhat.com \
    --cc=dhowells@redhat.com \
    --cc=eb@emlix.com \
    --cc=ebiederm@xmission.com \
    --cc=keescook@chromium.org \
    --cc=linux-mm@kvack.org \
    --cc=paulmck@linux.vnet.ibm.com \
    --cc=tglx@linutronix.de \
    /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;
as well as URLs for NNTP newsgroup(s).