Commit 843e9120b35ae0e4de791cebb37fa8ce46272d76

Denis Ahrens 2012-12-01T08:41:25

libztex: Match mining firmware ZTEX descriptor against the dummy firmware The first 8 bytes are matched, which ensures that the mining firmware actually fits the hardware, assuming that the correct dummy firmware is present in the device.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
diff --git a/libztex.c b/libztex.c
index de00bae..f179c68 100644
--- a/libztex.c
+++ b/libztex.c
@@ -152,6 +152,15 @@ static enum check_result libztex_checkDevice(struct libusb_device *dev)
 		goto done;
 	}
 
+	// in buf[] is still the identifier of the dummy firmware
+	// use it to compare it with the new firmware
+	char *rv = memmem(fw_buf, got_bytes, buf, 8);
+	if (rv == NULL)
+	{
+		applog(LOG_ERR, "%s: found firmware is not ZTEX", __func__);
+		goto done;
+	}
+
 	// reset 1
 	buf[0] = 1;
 	cnt = libusb_control_transfer(hndl, 0x40, 0xA0, 0xE600, 0, buf, 1,1000);