From: Karel Zak Date: Thu, 1 Jun 2017 10:15:23 +0000 (+0200) Subject: lscpu: make min/max freq arrays usage more robust X-Git-Tag: v2.30~16 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0145d84a381fc2fcd7d37e0dbf3d9dff69609ecd;p=thirdparty%2Futil-linux.git lscpu: make min/max freq arrays usage more robust The array members may be NULL on some architectures (e.g. AMD). Let's be paranoid and check for the NULL independently on present/online masks. Addresses: https://bugzilla.redhat.com/show_bug.cgi?id=1457744 Signed-off-by: Karel Zak --- diff --git a/sys-utils/lscpu.c b/sys-utils/lscpu.c index dc998267a8..3b549a7a0c 100644 --- a/sys-utils/lscpu.c +++ b/sys-utils/lscpu.c @@ -1264,7 +1264,8 @@ cpu_max_mhz(struct lscpu_desc *desc, char *buf, size_t bufsz) if (desc->present) { for (i = 1; i < desc->ncpuspos; i++) { - if (CPU_ISSET(real_cpu_num(desc, i), desc->present)) { + if (CPU_ISSET(real_cpu_num(desc, i), desc->present) + && desc->maxmhz[i]) { float freq = atof(desc->maxmhz[i]); if (freq > cpu_freq) @@ -1285,7 +1286,8 @@ cpu_min_mhz(struct lscpu_desc *desc, char *buf, size_t bufsz) if (desc->present) { for (i = 1; i < desc->ncpuspos; i++) { - if (CPU_ISSET(real_cpu_num(desc, i), desc->present)) { + if (CPU_ISSET(real_cpu_num(desc, i), desc->present) + && desc->minmhz[i]) { float freq = atof(desc->minmhz[i]); if (freq < cpu_freq) @@ -1597,11 +1599,11 @@ get_cell_data(struct lscpu_desc *desc, int idx, int col, is_cpu_online(desc, cpu) ? _("yes") : _("no")); break; case COL_MAXMHZ: - if (desc->maxmhz) + if (desc->maxmhz && desc->maxmhz[idx]) xstrncpy(buf, desc->maxmhz[idx], bufsz); break; case COL_MINMHZ: - if (desc->minmhz) + if (desc->minmhz && desc->minmhz[idx]) xstrncpy(buf, desc->minmhz[idx], bufsz); break; }