diff --git a/findnonce.c b/findnonce.c index 344c7d15..2bfc1ef8 100644 --- a/findnonce.c +++ b/findnonce.c @@ -254,7 +254,14 @@ static void *postcalc_hash(void *userdata) /* To prevent corrupt values in FOUND from trying to read beyond the * end of the res[] array */ - pcd->res[FOUND] &= FOUND; + if (unlikely(pcd->res[FOUND] & ~FOUND)) { + applog(LOG_WARNING, "%s%d: invalid nonce count - HW error", + thr->cgpu->api->name, thr->cgpu->device_id); + hw_errors++; + thr->cgpu->hw_errors++; + pcd->res[FOUND] &= FOUND; + } + for (entry = 0; entry < pcd->res[FOUND]; entry++) { uint32_t nonce = pcd->res[entry];