Re: [PATCH 4/4] Return -EINVAL if userspace passes bogus flags to open()

From: Demi M. Obenour
Date: Tue Feb 12 2019 - 18:00:52 EST




On 2/12/19 3:38 PM, Al Viro wrote:
> On Tue, Feb 12, 2019 at 09:54:47AM -0500, demiobenour@xxxxxxxxx wrote:
>> From: "Demi M. Obenour" <demiobenour@xxxxxxxxx>
>>
>> While testing the O_PATHSTATIC patch, I discovered that Linux does not
>> return any error if an invalid flag is passed to open(2). This prevents
>> adding new flags without a (minor) risk of breaking userspace.
>> Therefore, add a check for invalid flags, and return -EINVAL if any are
>> found.
>
> ... which would qualtify as userland ABI breakage all by itself.
>
I suspect that very few (if any) programs pass invalid flags to open().
Additionally, O_DIRECT was added in Linux 2.4, even though it had
previously been ignored. If someone knows of a real program that does,
I can instead create an open2() syscall, but I would prefer to avoid that.

Attachment: signature.asc
Description: OpenPGP digital signature