@cryptotaxi247 / netdata-1 / commits / 5cbb7d685

fix: check for null rrdim in cgroup functions (#16331)

* fix: check for null rrdim in cgroup functions * fmt

Ilya Mashchenko committed Nov 3, 2023 at 18:34 UTC 5cbb7d68573e114e5f64ec9264b72d485258e8a7
1 file changed +20 -8
collectors/cgroups.plugin/cgroup-top.c
+20 -8
@@ -137,12 +137,18 @@ int cgroup_function_cgroup_top(BUFFER *wb, int timeout __maybe_unused, const cha
137 else
138 buffer_json_add_array_item_string(wb, "cgroup"); // Kind
139
140 - double cpu = cg->st_cpu_rd_user->collector.last_stored_value + cg->st_cpu_rd_system->collector.last_stored_value;
141 - max_cpu = MAX(max_cpu, cpu);
140 + double cpu = NAN;
141 + if (cg->st_cpu_rd_user && cg->st_cpu_rd_system) {
142 + cpu = cg->st_cpu_rd_user->collector.last_stored_value + cg->st_cpu_rd_system->collector.last_stored_value;
143 + max_cpu = MAX(max_cpu, cpu);
144 + }
145 buffer_json_add_array_item_double(wb, cpu);
146
144 - double ram = cg->st_mem_rd_ram->collector.last_stored_value;
145 - max_ram = MAX(max_ram, ram);
147 + double ram = NAN;
148 + if (cg->st_mem_rd_ram) {
149 + ram = cg->st_mem_rd_ram->collector.last_stored_value;
150 + max_ram = MAX(max_ram, ram);
151 + }
152 buffer_json_add_array_item_double(wb, ram);
153
154 double disk_io_read = NAN;
@@ -371,12 +377,18 @@ int cgroup_function_systemd_top(BUFFER *wb, int timeout __maybe_unused, const ch
377
378 buffer_json_add_array_item_string(wb, cg->name);
379
374 - double cpu = cg->st_cpu_rd_user->collector.last_stored_value + cg->st_cpu_rd_system->collector.last_stored_value;
375 - max_cpu = MAX(max_cpu, cpu);
380 + double cpu = NAN;
381 + if (cg->st_cpu_rd_user && cg->st_cpu_rd_system) {
382 + cpu = cg->st_cpu_rd_user->collector.last_stored_value + cg->st_cpu_rd_system->collector.last_stored_value;
383 + max_cpu = MAX(max_cpu, cpu);
384 + }
385 buffer_json_add_array_item_double(wb, cpu);
386
378 - double ram = cg->st_mem_rd_ram->collector.last_stored_value;
379 - max_ram = MAX(max_ram, ram);
387 + double ram = NAN;
388 + if (cg->st_mem_rd_ram) {
389 + ram = cg->st_mem_rd_ram->collector.last_stored_value;
390 + max_ram = MAX(max_ram, ram);
391 + }
392 buffer_json_add_array_item_double(wb, ram);
393
394 double disk_io_read = NAN;