Commit Diff


commit - 50f5d1a7a8b307464a4dfabb249bbf3605b2ffae
commit + 72281ecda814ad952b868ac61f018507916dd6da
blob - 2a1fa6ee7b70e0a91e23dda2d80cb58770cb58a3
blob + 7d94eef2c898c27e48844fe900700302dbf32cfb
--- src/cmd/venti/randtest.c
+++ src/cmd/venti/randtest.c
@@ -96,8 +96,9 @@ run(void (*fn)(char*, char*), Channel *c)
 	buf = vtmalloc(blocksize);
 	cur = 0;
 	packets = totalbytes/blocksize;
-	if(maxpackets == 0)
-		maxpackets = packets;
+	if(maxpackets > 0 && maxpackets < packets)
+		packets = maxpackets;
+	totalbytes = (vlong)packets * blocksize;
 	order = vtmalloc(packets*sizeof order[0]);
 	for(i=0; i<packets; i++)
 		order[i] = i;
@@ -109,7 +110,7 @@ run(void (*fn)(char*, char*), Channel *c)
 			order[j] = t;
 		}
 	}
-	for(i=0; i<packets && i<maxpackets; i++){
+	for(i=0; i<packets; i++){
 		memmove(buf, template, blocksize);
 		*(uint*)buf = order[i];
 		if(c){