Commit 775f2040e5ff4e7e758bbecb373a34b0ddef9c95

Con Kolivas 2013-10-13T21:49:57

Check return code from hashfast_get_header in reset and fail when appropriate.

diff --git a/driver-hashfast.c b/driver-hashfast.c
index 92a5863..6dc51da 100644
--- a/driver-hashfast.c
+++ b/driver-hashfast.c
@@ -210,8 +210,18 @@ static bool hashfast_reset(struct cgpu_info *hashfast, struct hashfast_info *inf
 		if (ret)
 			break;
 	}
-	if (!ret)
+	if (!ret) {
 		applog(LOG_WARNING, "HFA %d: OP_USB_INIT failed!", hashfast->device_id);
+		return false;
+	}
+	if (h->crc8 != hcrc) {
+		applog(LOG_WARNING, "HFA %d: OP_USB_INIT failed! CRC mismatch", hashfast->device_id);
+		return false;
+	}
+	if (h->operation_code != OP_USB_INIT) {
+		applog(LOG_WARNING, "HFA %d: OP_USB_INIT: Tossing packet, valid but unexpected type", hashfast->device_id);
+		return false;
+	}
 
 	return true;
 }