• Arnaldo Carvalho de Melo's avatar
    perf parse-events: Fix unchecked usage of strncpy() · 05f94c60
    Arnaldo Carvalho de Melo authored
    [ Upstream commit bd8d57fb ]
    
    The strncpy() function may leave the destination string buffer
    unterminated, better use strlcpy() that we have a __weak fallback
    implementation for systems without it.
    
    This fixes this warning on an Alpine Linux Edge system with gcc 8.2:
    
      util/parse-events.c: In function 'print_symbol_events':
      util/parse-events.c:2465:4: error: 'strncpy' specified bound 100 equals destination size [-Werror=stringop-truncation]
          strncpy(name, syms->symbol, MAX_NAME_LEN);
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      In function 'print_symbol_events.constprop',
          inlined from 'print_events' at util/parse-events.c:2508:2:
      util/parse-events.c:2465:4: error: 'strncpy' specified bound 100 equals destination size [-Werror=stringop-truncation]
          strncpy(name, syms->symbol, MAX_NAME_LEN);
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      In function 'print_symbol_events.constprop',
          inlined from 'print_events' at util/parse-events.c:2511:2:
      util/parse-events.c:2465:4: error: 'strncpy' specified bound 100 equals destination size [-Werror=stringop-truncation]
          strncpy(name, syms->symbol, MAX_NAME_LEN);
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      cc1: all warnings being treated as errors
    
    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Fixes: 947b4ad1 ("perf list: Fix max event string size")
    Link: https://lkml.kernel.org/n/tip-b663e33bm6x8hrkie4uxh7u2@git.kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
    05f94c60
parse-events.c 60.6 KB