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;