On Sun,  7 Jan 2018 02:31:49 +0800
Antonio Quartulli <a...@unstable.cc> 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 <sbri...@redhat.com>
> Cc: Stephen Hemminger <step...@networkplumber.org>
> Signed-off-by: Antonio Quartulli <a...@unstable.cc>

Fixes: 691bd854bf4a ("ss: Buffer raw fields first, then render them as a table")
Reviewed-by: Stefano Brivio <sbri...@redhat.com>

-- 
Stefano

Reply via email to