summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorXoris <xmingwp@gmail.com>2024-06-15 10:49:23 +0800
committerXoris <xmingwp@gmail.com>2024-06-15 10:49:23 +0800
commited51c2a75178bde30fa59b1bca4ce9090a9c4349 (patch)
treec060297046579de7cfcfef3fa816d5ee366f0733
parent516979b2ae050a95a4bbd3928bc856e482a37097 (diff)
fix divide 0 error when caculating disk usage percentage (#791)
-rw-r--r--src/freebsd/btop_collect.cpp9
-rw-r--r--src/linux/btop_collect.cpp9
-rw-r--r--src/openbsd/btop_collect.cpp9
-rw-r--r--src/osx/btop_collect.cpp9
4 files changed, 28 insertions, 8 deletions
diff --git a/src/freebsd/btop_collect.cpp b/src/freebsd/btop_collect.cpp
index b4034c7..29e54bf 100644
--- a/src/freebsd/btop_collect.cpp
+++ b/src/freebsd/btop_collect.cpp
@@ -771,8 +771,13 @@ namespace Mem {
disk.total = vfs.f_blocks * vfs.f_frsize;
disk.free = vfs.f_bfree * vfs.f_frsize;
disk.used = disk.total - disk.free;
- disk.used_percent = round((double)disk.used * 100 / disk.total);
- disk.free_percent = 100 - disk.used_percent;
+ if (disk.total != 0) {
+ disk.used_percent = round((double)disk.used * 100 / disk.total);
+ disk.free_percent = 100 - disk.used_percent;
+ } else {
+ disk.used_percent = 0;
+ disk.free_percent = 0;
+ }
}
//? Setup disks order in UI and add swap if enabled
diff --git a/src/linux/btop_collect.cpp b/src/linux/btop_collect.cpp
index d9f571f..0541357 100644
--- a/src/linux/btop_collect.cpp
+++ b/src/linux/btop_collect.cpp
@@ -1936,8 +1936,13 @@ namespace Mem {
disk.total = vfs.f_blocks * vfs.f_frsize;
disk.free = (free_priv ? vfs.f_bfree : vfs.f_bavail) * vfs.f_frsize;
disk.used = disk.total - disk.free;
- disk.used_percent = round((double)disk.used * 100 / disk.total);
- disk.free_percent = 100 - disk.used_percent;
+ if (disk.total != 0) {
+ disk.used_percent = round((double)disk.used * 100 / disk.total);
+ disk.free_percent = 100 - disk.used_percent;
+ } else {
+ disk.used_percent = 0;
+ disk.free_percent = 0;
+ }
return pair{disk, -1};
});
++it;
diff --git a/src/openbsd/btop_collect.cpp b/src/openbsd/btop_collect.cpp
index a8c395e..480b834 100644
--- a/src/openbsd/btop_collect.cpp
+++ b/src/openbsd/btop_collect.cpp
@@ -723,8 +723,13 @@ namespace Mem {
disk.total = vfs.f_blocks * vfs.f_frsize;
disk.free = vfs.f_bfree * vfs.f_frsize;
disk.used = disk.total - disk.free;
- disk.used_percent = round((double)disk.used * 100 / disk.total);
- disk.free_percent = 100 - disk.used_percent;
+ if (disk.total != 0) {
+ disk.used_percent = round((double)disk.used * 100 / disk.total);
+ disk.free_percent = 100 - disk.used_percent;
+ } else {
+ disk.used_percent = 0;
+ disk.free_percent = 0;
+ }
}
//? Setup disks order in UI and add swap if enabled
diff --git a/src/osx/btop_collect.cpp b/src/osx/btop_collect.cpp
index 8c65705..4d54e32 100644
--- a/src/osx/btop_collect.cpp
+++ b/src/osx/btop_collect.cpp
@@ -795,8 +795,13 @@ namespace Mem {
disk.total = vfs.f_blocks * vfs.f_frsize;
disk.free = vfs.f_bfree * vfs.f_frsize;
disk.used = disk.total - disk.free;
- disk.used_percent = round((double)disk.used * 100 / disk.total);
- disk.free_percent = 100 - disk.used_percent;
+ if (disk.total != 0) {
+ disk.used_percent = round((double)disk.used * 100 / disk.total);
+ disk.free_percent = 100 - disk.used_percent;
+ } else {
+ disk.used_percent = 0;
+ disk.free_percent = 0;
+ }
}
//? Setup disks order in UI and add swap if enabled