summaryrefslogtreecommitdiffstats
path: root/usr.sbin/mfiutil/mfi_cmd.c
diff options
context:
space:
mode:
authorpluknet <pluknet@FreeBSD.org>2011-02-25 13:59:59 +0000
committerpluknet <pluknet@FreeBSD.org>2011-02-25 13:59:59 +0000
commit7d4c7b1304581c3271a1ded2c9595ec5df95f8eb (patch)
tree269dae574467cab5275474f391bdf2cf0ef4be0e /usr.sbin/mfiutil/mfi_cmd.c
parentb8896acc716d6a673421b1d7e948e900499b5f1d (diff)
downloadFreeBSD-src-7d4c7b1304581c3271a1ded2c9595ec5df95f8eb.zip
FreeBSD-src-7d4c7b1304581c3271a1ded2c9595ec5df95f8eb.tar.gz
Fix division by zero, causing floating point exception in a drive progress
command. It was possible to read a value of zero from a busy controller used as the divisor to calculate the remaining rebuild time. Reported by: Pavel Udovenko <udovenko att nic.ru> Discussed with: jhb Approved by: kib (mentor) MFC after: 1 week
Diffstat (limited to 'usr.sbin/mfiutil/mfi_cmd.c')
-rw-r--r--usr.sbin/mfiutil/mfi_cmd.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/usr.sbin/mfiutil/mfi_cmd.c b/usr.sbin/mfiutil/mfi_cmd.c
index 07fe148..7fedfb6 100644
--- a/usr.sbin/mfiutil/mfi_cmd.c
+++ b/usr.sbin/mfiutil/mfi_cmd.c
@@ -316,7 +316,7 @@ mfi_display_progress(const char *label, struct mfi_progress *prog)
printf("%s: %.2f%% complete, after %ds", label,
(float)prog->progress * 100 / 0xffff, prog->elapsed_seconds);
- if (prog->elapsed_seconds > 10) {
+ if (prog->progress != 0 && prog->elapsed_seconds > 10) {
printf(" finished in ");
seconds = (0x10000 * (uint32_t)prog->elapsed_seconds) /
prog->progress - prog->elapsed_seconds;
OpenPOWER on IntegriCloud