threads / patch / 6371

patch, 2 partsAvoid a floating point exception in merge-recursive.

Subject: [PATCH 1/2] Avoid a floating point exception in merge-recursive.

## tl;dr

One message between Jan 14, 2007 and Jan 14, 2007. Diffs are folded; open one to read it.

replies: 0people: 1as markdown or json

Shawn O. Pearce· Jan 14, 2007, 08:11 UTC · lore

If we have no files selected for processing yet but we try to produce a status output this would cause a division by zero error when computing the percent done. Last time I talked to a user, crashing a program over performing an undefined operation isn't very nice. So instead lets set the percentage done to 0.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
---
 This is on top of the merge-recursive series I just sent.
 You may already have it fixed in your tree, or maybe not.
 merge-recursive.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
Show changes to merge-recursive.c +1 −1
diff --git a/merge-recursive.c b/merge-recursive.c
index c4e21bc..2a89461 100644
--- a/merge-recursive.c
+++ b/merge-recursive.c
@@ -182,7 +182,7 @@ static void setup_progress_signal(void)
 
 static void display_progress()
 {
-	unsigned percent = merged_cnt * 100 / total_cnt;
+	unsigned percent = total_cnt ? merged_cnt * 100 / total_cnt : 0;
 	if (progress_update || percent != last_percent) {
 		fprintf(stderr, "%4u%% (%u/%u) done\r",
 			percent, merged_cnt, total_cnt);
-- 
1.5.0.rc1.g4494

← back to recent threads