• Chris Phlipot's avatar
    perf event-parse: Use fixed size string for comms · c9f23d2b
    Chris Phlipot authored
    Some implementations of libc do not support the 'm' width modifier as
    part of the scanf string format specifier. This can cause the parsing to
    fail.  Since the parser never checks if the scanf parsing was
    successesful, this can result in a crash.
    
    Change the comm string to be allocated as a fixed size instead of
    dynamically using 'm' scanf width modifier. This can be safely done
    since comm size is limited to 16 bytes by TASK_COMM_LEN within the
    kernel.
    
    This change prevents perf from crashing when linked against bionic as
    well as reduces the total number of heap allocations and frees invoked
    while accomplishing the same task.
    Signed-off-by: default avatarChris Phlipot <cphlipot0@gmail.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Link: http://lkml.kernel.org/r/20180830021950.15563-1-cphlipot0@gmail.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    c9f23d2b
trace-event-parse.c 5.69 KB