aboutsummaryrefslogtreecommitdiffstats
path: root/debian/patches/0102-fix-division-by-zero-in-io-rates.patch
blob: 0fc10bc52c7ad0fe1f0561da63df9c3673606237 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
Backport of 265a7b8a501174e2f5c8268a76b5e88d6688ad70
---

--- a/linux/LinuxProcessList.c
+++ b/linux/LinuxProcessList.c
@@ -398,6 +398,7 @@
 
    unsigned long long last_read = process->io_read_bytes;
    unsigned long long last_write = process->io_write_bytes;
+
    char* buf = buffer;
    char* line = NULL;
    while ((line = strsep(&buf, "\n")) != NULL) {
@@ -408,7 +409,7 @@
          } else if (String_startsWith(line + 1, "ead_bytes: ")) {
             process->io_read_bytes = strtoull(line + 12, NULL, 10);
             process->io_rate_read_bps =
-               ((double)(process->io_read_bytes - last_read)) / (((double)(now - process->io_rate_read_time)) / 1000);
+               now > process->io_rate_read_time ? ((double)(process->io_read_bytes - last_read)) / (((double)(now - process->io_rate_read_time)) / 1000) : NAN;
             process->io_rate_read_time = now;
          }
          break;
@@ -418,7 +419,7 @@
          } else if (String_startsWith(line + 1, "rite_bytes: ")) {
             process->io_write_bytes = strtoull(line + 13, NULL, 10);
             process->io_rate_write_bps =
-               ((double)(process->io_write_bytes - last_write)) / (((double)(now - process->io_rate_write_time)) / 1000);
+               now > process->io_rate_write_time ? ((double)(process->io_write_bytes - last_write)) / (((double)(now - process->io_rate_write_time)) / 1000) : NAN;
             process->io_rate_write_time = now;
          }
          break;

© 2014-2024 Faster IT GmbH | imprint | privacy policy