• Arnaldo Carvalho de Melo's avatar
    perf env: Do not return pointers to local variables · ebcb9464
    Arnaldo Carvalho de Melo authored
    It is possible to return a pointer to a local variable when looking up
    the architecture name for the running system and no normalization is
    done on that value, i.e. we may end up returning the uts.machine local
    variable.
    
    While this doesn't happen on most arches, as normalization takes place,
    lets fix this by making that a static variable and optimize it a bit by
    not always running uname(), only the first time.
    
    Noticed in fedora rawhide running with:
    
      [perfbuilder@a5ff49d6e6e4 ~]$ gcc --version
      gcc (GCC) 10.0.1 20200216 (Red Hat 10.0.1-0.8)
    Reported-by: default avatarJiri Olsa <jolsa@kernel.org>
    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    ebcb9464
env.c 8.37 KB