https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101832

--- Comment #4 from Kees Cook <kees at outflux dot net> ---
It seems like this isn't about crossing field boundaries -- it's asking "how
large is this particular member?" and bos can't know the answer because there
is a flex-array.

Why would 

    __builtin_object_size(wrap->msg.nlmsg_content, 1);

and

    __builtin_object_size(&wrap->msg, 1);

differ?


Or, if bos lacked "introspecition depth" to find the flex-array, why would

    __builtin_object_size(msg->nlmsg_content, 1);

and

    __builtin_object_size(msg, 1);

be the same?


It seems like the latter pair (same results) is correct, and the former pair
(differing result) is wrong.

Reply via email to