Re: VLA removal (was Re: [RFC 2/2] lustre: use VLA_SAFE)

From: Daniel Micay
Date: Thu Mar 08 2018 - 00:39:38 EST


On 7 March 2018 at 13:09, Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> wrote:
> On Wed, Mar 7, 2018 at 9:37 AM, Kees Cook <keescook@xxxxxxxxxxxx> wrote:
>>
>> Building with -Wvla, I see 209 unique locations reported in 60 directories:
>> http://paste.ubuntu.com/p/srQxwPQS9s/
>
> Ok, that's not so bad. Maybe Greg could even add it to one of those
> things he encourages new people to do?
>
> Because at least *some* of them are pretty trivial. For example,
> looking at the core code, I was surprised to see something in
> lib/btree.c

Some are probably just the issue of technically having a VLA that's
not really a VLA:

static const int size = 5;

void foo(void) {
int x[size];
}

% gcc -c -Wvla foo.c
foo.c: In function âfooâ:
foo.c:4:3: warning: ISO C90 forbids variable length array âxâ [-Wvla]
int x[size];
^~~

I don't really understand why the C standard didn't make `static
const` declarations usable as constant expressions like C++. They made
the pointer conversions more painful too.

It would be nice to get rid of those cases to use -Werror=vla though.