• Haoze Xie's avatar
    perf record: Fix memset out-of-range error · 6353abd3
    Haoze Xie authored
    Modified the object of 'memset' from '&lost.lost' to '&lost' in
    record__read_lost_samples. This allows 'memset' to access memory properly
    without causing out-of-bounds problems.
    
    The problems got from builtin-record.c are:
    
    In file included from /usr/include/string.h:495,
                     from util/parse-events.h:13,
                     from builtin-record.c:14:
    In function 'memset',
        inlined from 'record__read_lost_samples' at
        builtin-record.c:1958:6,
        inlined from '__cmd_record.constprop' at builtin-record.c:2817:2:
    /usr/include/x86_64-linux-gnu/bits/string_fortified.h:71:10: error:
    '__builtin_memset' offset [17, 64] from the object at 'lost' is out
    of the bounds of referenced subobject 'lost' with type
    'struct perf_record_lost_samples' at offset 0 [-Werror=array-bounds]
    71|return __builtin___memset_chk (__dest,__ch,__len,__bos0 (__dest));
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    
    The error arised when performing a memset operation on the 'lost' variable,
    the bytes of 'sizeof(lost)' exceeds that of '&lost.lost', which are 64
    and 16.
    
    Fixes: 6c1785cd ("perf record: Ensure space for lost samples")
    Signed-off-by: default avatarHaoze Xie <royenheart@gmail.com>
    Signed-off-by: default avatarYuan Tan <tanyuan@tinylab.org>
    Link: https://lore.kernel.org/r/11e12f171b846577cac698cd3999db3d7f6c4d03.1720372317.git.royenheart@gmail.comSigned-off-by: default avatarNamhyung Kim <namhyung@kernel.org>
    6353abd3
builtin-record.c 112 KB