aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--debian/changelog6
-rw-r--r--debian/patches/0102-fix-division-by-zero-in-io-rates.patch31
-rw-r--r--debian/patches/series1
3 files changed, 38 insertions, 0 deletions
diff --git a/debian/changelog b/debian/changelog
index 0578414..5fd7929 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+htop (3.0.5-8) UNRELEASED; urgency=medium
+
+ * Fix division by zero in IO rate calculation
+
+ -- Daniel Lange <DLange@debian.org> Fri, 04 Feb 2022 11:17:03 +0100
+
htop (3.0.5-7) unstable; urgency=medium
* Fix division by 0 on ZfsCompressedArcMeter (when no ZFS volume is mounted)
diff --git a/debian/patches/0102-fix-division-by-zero-in-io-rates.patch b/debian/patches/0102-fix-division-by-zero-in-io-rates.patch
new file mode 100644
index 0000000..0fc10bc
--- /dev/null
+++ b/debian/patches/0102-fix-division-by-zero-in-io-rates.patch
@@ -0,0 +1,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;
diff --git a/debian/patches/series b/debian/patches/series
index f8e08e4..b041a42 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -16,3 +16,4 @@
0016-fix-div-by-zero-zfscompressedarcmeter.patch
0100-update-uid-on-change.patch
0101-drop-o-path-usage.patch
+0102-fix-division-by-zero-in-io-rates.patch

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