]> granicus.if.org Git - sysstat/commitdiff
sar/sadc: Dereference nr array pointer in struct activity
authorSebastien GODARD <sysstat@users.noreply.github.com>
Tue, 22 Dec 2020 11:31:33 +0000 (12:31 +0100)
committerSebastien GODARD <sysstat@users.noreply.github.com>
Tue, 22 Dec 2020 11:31:33 +0000 (12:31 +0100)
nr field in struct activity is an array of integers, not an integer
itself. So dereference it to actually access the values.

Signed-off-by: Sebastien GODARD <sysstat@users.noreply.github.com>
sadc.c
sadf.c

diff --git a/sadc.c b/sadc.c
index 5a11ab2625f9b38536743fd065b879c003a1a389..8f4d6452406ac7790ec2aa0caca2cd31b037989d 100644 (file)
--- a/sadc.c
+++ b/sadc.c
@@ -294,7 +294,7 @@ void reset_stats(void)
        int i;
 
         for (i = 0; i < NR_ACT; i++) {
-               if ((act[i]->nr > 0) && act[i]->_buf0) {
+               if ((act[i]->_nr0 > 0) && act[i]->_buf0) {
                        memset(act[i]->_buf0, 0,
                               (size_t) act[i]->msize * (size_t) act[i]->nr_allocated * (size_t) act[i]->nr2);
                }
diff --git a/sadf.c b/sadf.c
index bced02ee435686e1d781a8f6270f1d9854b5ce0a..4acdfcfa9fff936081c0162a425d1e4b2fcb58bd 100644 (file)
--- a/sadf.c
+++ b/sadf.c
@@ -717,13 +717,13 @@ int generic_write_stats(int curr, int use_tm_start, int use_tm_end, int reset,
                        continue;
 
                if ((TEST_MARKUP(fmt[f_position]->options) && CLOSE_MARKUP(act[i]->options)) ||
-                   (IS_SELECTED(act[i]->options) && (act[i]->nr > 0))) {
+                   (IS_SELECTED(act[i]->options) && (act[i]->nr[curr] > 0))) {
 
                        if (format == F_JSON_OUTPUT) {
                                /* JSON output */
                                int *tab = (int *) parm;
 
-                               if (IS_SELECTED(act[i]->options) && (act[i]->nr > 0)) {
+                               if (IS_SELECTED(act[i]->options) && (act[i]->nr[curr] > 0)) {
 
                                        if (*fmt[f_position]->f_timestamp) {
                                                (*fmt[f_position]->f_timestamp)(tab, F_MAIN, cur_date, cur_time,