Subject: Re: [PATCH] net: inetfilter: LLVMLinux: vlais-netfilter

From: Pablo Neira Ayuso <[email-masked]>
Date: Fri, 7 Mar 2014 18:26:27 +0100

On Thu, Mar 06, 2014 at 11:56:08AM -0800, [email-masked] wrote:
> From: Mark Charlebois <[email-masked]>
> 
> Replaced non-standard C use of Variable Length Arrays In Structs (VLAIS) in
> xt_repldata.h with a C99 compliant flexible array member and then calculated
> offsets to the other struct members. These other members aren't referenced by
> name in this code, however this patch maintains the same memory layout and
> padding as was previously accomplished using VLAIS.
> 
> Had the original structure been ordered differently, with the entries VLA at
> the end, then it could have been a flexible member, and this patch would have
> been a lot simpler. However since the data stored in this structure is
> ultimately exported to userspace, the order of this structure can't be changed.
> 
> This patch makes no attempt to change the existing behavior, merely the way in
> which the current layout is accomplished using standard C99 constructs. As such
> the code can now be compiled with either gcc or clang.

I think we already agreed on not accepting macro tricks to get this
compiling with clang:

http://comments.gmane.org/gmane.comp.security.firewalls.netfilter.devel/45138