diff options
author | Jeff Garzik <jeff@garzik.org> | 2011-03-21 03:45:26 -0400 |
---|---|---|
committer | Jeff Garzik <jgarzik@pobox.com> | 2011-03-21 03:45:26 -0400 |
commit | 144cf62d7c3eed3f5412edb18b238b2c1209f4c1 (patch) | |
tree | 7aa6f3fddff27ad1f72bd1cab2595979ee7e596c /cpu-miner.c | |
parent | d49d639269648394ceab175aaa8ffea876e29f4b (diff) |
Avoid potential for div-by-zero, when calculating max-nonce
Diffstat (limited to 'cpu-miner.c')
-rw-r--r-- | cpu-miner.c | 13 |
1 files changed, 9 insertions, 4 deletions
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)) |