Thread (1 message) 1 message, 1 author, 2016-08-25

Re: CVE-2014-9900 fix is not upstream

From: Johannes Berg <johannes@sipsolutions.net>
Date: 2016-08-25 12:40:19
Also in: lkml

If we want to go down this route, probably the only option is to add
__attribute__((pack)) those structs to just have no padding at all,
thus breaking uapi.
We could also spell out the padding bytes as reserved, i.e. instead of

struct ethtool_wolinfo {
        __u32   cmd;
        __u32   supported;
        __u32   wolopts;
        __u8    sopass[SOPASS_MAX];     // 6, actually
};

we could do

struct ethtool_wolinfo {
        __u32   cmd;
        __u32   supported;
        __u32   wolopts;
        __u8    sopass[SOPASS_MAX];     // 6, actually
	__u8	reserved[2];
};

and then the compiler has to properly treat it, since it's no longer
unnamed padding.

Maybe somebody can come up with a smart BUILD_BUG_ON() to ensure such
structs have no padding.

That would allow us to keep the C99 initializers (which is nice) and
not have to worry about this.

johannes
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help