shithub: gefs

Download patch

ref: 1a88ade6f51bd413390f6f4b8ece7c96828105c8
parent: 31ff354ea65c8f0904ecec1842abdc9df650ba18
author: Ori Bernstein <ori@eigenstate.org>
date: Mon Feb 26 19:09:13 EST 2024

freplay: fix off-by-one in size, use /mnt instead of /n

--- a/test/freplay.c
+++ b/test/freplay.c
@@ -6,7 +6,7 @@
 
 File*	ctlfile;
 File*	datfile;
-char*	mountpt	= "/n/replay";
+char*	mountpt	= "/mnt/replay";
 char*	srvname = "replay";
 char*	logfile;
 char*	replayfile;
@@ -75,10 +75,14 @@
 fswrite(Req *r)
 {
 	if(r->fid->file == datfile){
-		if(logfile == nil)
+		if(logfile == nil){
 			respond(r, "read-only replay file: no log defined");
-		if(r->ifcall.offset + r->ifcall.count >= membufsz)
+			return;
+		}
+		if(r->ifcall.offset + r->ifcall.count > membufsz){
 			respond(r, "operation exceeds file size");
+			return;
+		}
 		log1(logfd, r->ifcall.data, r->ifcall.offset, r->ifcall.count);
 		memcpy(membuf + r->ifcall.offset, r->ifcall.data, r->ifcall.count);
 		r->ofcall.count = r->ifcall.count;