Commit Diff


commit - 0df4c01ecab67c56ef701997189a281bc3cb303d
commit + 943cb39dd9c4d5ee16bc036e495bfc168a3cf745
blob - ec02c81f4509a3f359b893888f5aa07c52c072ce
blob + c0b18db64f4b3536e3df299da2f471aa15bbbd88
--- src/lib9p/srv.c
+++ src/lib9p/srv.c
@@ -64,7 +64,7 @@ getreq(Srv *s)
 		return nil;
 	}
 
-	buf = emalloc9p(n);
+	buf = emalloc9p(n+1);	/* +1 for NUL in swrite */
 	memmove(buf, s->rbuf, n);
 	qunlock(&s->rlock);
 
@@ -535,9 +535,10 @@ swrite(Srv *srv, Req *r)
 		respond(r, e);
 		return;
 	}
-	if(srv->write)
+	if(srv->write){
+		r->ifcall.data[r->ifcall.count] = 0;	/* enough room - see getreq */
 		srv->write(r);
-	else
+	}else
 		respond(r, "no srv->write");
 }
 static void