Commit 144cf62d7c3eed3f5412edb18b238b2c1209f4c1

Jeff Garzik 2011-03-21T03:45:26

Avoid potential for div-by-zero, when calculating max-nonce

diff --git a/cpu-miner.c b/cpu-miner.c
index e402b0b..554a297 100644
--- a/cpu-miner.c
+++ b/cpu-miner.c
@@ -585,10 +585,15 @@ static void *miner_thread(void *userdata)
 		hashmeter(thr_id, &diff, hashes_done);
 
 		/* adjust max_nonce to meet target scan time */
-		max64 = ((uint64_t)hashes_done * opt_scantime) / diff.tv_sec;
-		if (max64 > 0xfffffffaULL)
-			max64 = 0xfffffffaULL;
-		max_nonce = max64;
+		if (diff.tv_usec > 500000)
+			diff.tv_sec++;
+		if (diff.tv_sec > 0) {
+			max64 =
+			   ((uint64_t)hashes_done * opt_scantime) / diff.tv_sec;
+			if (max64 > 0xfffffffaULL)
+				max64 = 0xfffffffaULL;
+			max_nonce = max64;
+		}
 
 		/* if nonce found, submit work */
 		if (rc && !submit_work(mythr, &work))