Messages in this thread | | | Date | Fri, 18 Sep 2020 21:02:52 +0100 | From | Matthew Wilcox <> | Subject | Re: [GIT PULL] percpu fix for v5.9-rc6 |
| |
On Fri, Sep 18, 2020 at 12:37:48PM -0700, Linus Torvalds wrote: > > Applying sizeof() to a structure containing a flex-array member is allowed, > > Yes, and that's wrong and inconsistent, but what else is new about the > C standard. It's what allows these kinds of bugs to slip through.
Hmm. We actually do that in our implementation of struct_size()
#define struct_size(p, member, count) \ __ab_c_size(count, \ sizeof(*(p)->member) + __must_be_array((p)->member),\ sizeof(*(p)))
I suppose it's not really necessary, we could do offsetof here, right?
#define struct_size(p, member, count) \ __ab_c_size(count, \ sizeof(*(p)->member) + __must_be_array((p)->member),\ offsetof(typeof(*(p)), member))
| |