Subject: Re: [iproute2 1/2] ss: fix crash when skipping disabled header field

From: Stefano Brivio <[email-masked]>
Date: Sat, 6 Jan 2018 19:53:40 +0100

On Sun,  7 Jan 2018 02:31:49 +0800
Antonio Quartulli <[email-masked]> wrote:

> When the first header field is disabled (i.e. when passing the -t
> option), field_flush() is invoked with the `buffer` global variable
> still zero'd.
> However, in field_flush() we try to access buffer.cur->len
> during variables initialization, thus leading to a SIGSEGV.

Good catch, thanks for fixing this.

> It's interesting to note that this bug appears only when the code
> is compiled with -O0, because the compiler is smart
> enough to immediately jump to the return statement if optimizations
> are enabled and skip the faulty instruction.

I should really have tested all the options with -O0 as well. :( Done
now.

> Cc: Stefano Brivio <[email-masked]>
> Cc: Stephen Hemminger <[email-masked]>
> Signed-off-by: Antonio Quartulli <[email-masked]>

Fixes: 691bd854bf4a ("ss: Buffer raw fields first, then render them as a table")
Reviewed-by: Stefano Brivio <[email-masked]>

-- 
Stefano