Browse Source

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

Con Kolivas 12 years ago
parent
commit
bb06c2f01b
1 changed files with 4 additions and 4 deletions
  1. 4 4
      driver-avalon.c

+ 4 - 4
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) {