On 4/16/19 2:59 AM, Florian Weimer wrote: > * hpa: > >> Using symbol versioning doesn't really help much since the real >> problem is that struct termios can be passed around in userspace, and >> the interfaces between user space libraries don't have any >> versioning. However, my POC code deals with that too by only seeing >> BOTHER when necessary, so if the structure is extended garbage in the >> extra fields will be ignored unless new baud rates are in use. > > That still doesn't solve the problem of changing struct offsets after a > struct field of type struct termios. > >> Exporting termios2 to user space feels a bit odd at this stage as it >> would only be usable as a fallback on old glibc. Call it >> kernel_termios2 at least. > > I'm not sure why we should do that? The kernel calls it struct termios2 > in its UAPI headers. If that name is not appropriate, it should be > changed first in the UAPI headers. > It should; I believe the namespace we ought to use is struct __kernel_termios[2]. "struct termios" defined in these headers is obviously completely wrong for userspace. -hpa