Commit bb06c2f01b247a8f5da8183f421946d973395ad4

Con Kolivas 2013-05-26T01:05:26

Cope with not finding nonces in avalon parsing gracefully by not overflowing buffers.

diff --git a/driver-avalon.c b/driver-avalon.c
index d5b58a6..486c0c6 100644
--- a/driver-avalon.c
+++ b/driver-avalon.c
@@ -622,9 +622,6 @@ static void avalon_parse_results(struct cgpu_info *avalon, struct avalon_info *i
 	size_t i, spare = AVALON_READ_SIZE - *offset;
 	bool found = false;
 
-	if (spare > AVALON_READ_SIZE - 1)
-		spare = AVALON_READ_SIZE - 1;
-
 	for (i = 0; i <= spare; i++) {
 		struct avalon_result *ar;
 		struct work *work;
@@ -650,7 +647,10 @@ static void avalon_parse_results(struct cgpu_info *avalon, struct avalon_info *i
 		}
 	}
 
-	spare = AVALON_READ_SIZE + i;
+	if (!found)
+		spare = *offset - AVALON_READ_SIZE - 1;
+	else
+		spare = AVALON_READ_SIZE + i;
 	*offset -= spare;
 	memmove(buf, buf + spare, *offset);
 	if (!found) {