Commit a39a38ea16e2c85dfcde3025813372253f3bc31a

kanoi 2013-10-27T06:14:09

Merge pull request #512 from kanoi/master klondike remove SCNu8 - unsupported on windows

diff --git a/driver-klondike.c b/driver-klondike.c
index dcdd671..0d6d157 100644
--- a/driver-klondike.c
+++ b/driver-klondike.c
@@ -695,17 +695,32 @@ static bool klondike_init(struct cgpu_info *klncgpu)
 
 	// boundaries are checked by device, with valid values returned
 	if (opt_klondike_options != NULL) {
-		int hashclock;
+		int hashclock, fantarget;
 		double temp1, temp2;
 
-		sscanf(opt_klondike_options, "%d:%lf:%lf:%"SCNu8,
+		sscanf(opt_klondike_options, "%d:%lf:%lf:%d",
 						&hashclock,
 						&temp1, &temp2,
-						&kline.cfg.fantarget);
+						&fantarget);
 		SET_HASHCLOCK(kline.cfg.hashclock, hashclock);
 		kline.cfg.temptarget = cvtCToKln(temp1);
 		kline.cfg.tempcritical = cvtCToKln(temp2);
-		kline.cfg.fantarget = (int)255*kline.cfg.fantarget/100;
+		if (fantarget < 0) {
+			applog(LOG_WARNING,
+				"%s%i: %s options invalid fantarget < 0 using 0",
+				klncgpu->drv->name,
+				klncgpu->device_id,
+				klncgpu->drv->dname);
+			fantarget = 0;
+		} else if (fantarget > 100) {
+			applog(LOG_WARNING,
+				"%s%i: %s options invalid fantarget > 100 using 100",
+				klncgpu->drv->name,
+				klncgpu->device_id,
+				klncgpu->drv->dname);
+			fantarget = 100;
+		}
+		kline.cfg.fantarget = (int)(255 * fantarget / 100);
 		size = sizeof(kline.cfg) - 2;
 	}