RFC: reject unknown open flags

From: Christoph Hellwig
Date: Thu Mar 30 2017 - 12:33:37 EST


Linux has traditionally accepted random garbage in the flags argument to
the open syscall (including the later added openat). This really harms
when adding new flags, because applications can't just probe for the
flag to actually work. While rejecting unknown flags is an ABI change
strictly speaking I can't see what would actually get broken by it
in practice, so by the Linux rules it might not be an issue.

Below is the trivial series to reject unknown flags. If this is not
acceptable there migh be some other ways, although they seem ugly:

(a) add a new openat2 system call that enforces this behavior, and
hope all majors libcs switch to using that by default to implement
open(3).
(b) add a new personality flag to enforce this behavior (or maybe
opt in by default and allow admins to opt out of it)