aboutsummaryrefslogtreecommitdiff
path: root/emu/port
diff options
context:
space:
mode:
Diffstat (limited to 'emu/port')
-rw-r--r--emu/port/devmnt.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/emu/port/devmnt.c b/emu/port/devmnt.c
index 327ec67..242a10d 100644
--- a/emu/port/devmnt.c
+++ b/emu/port/devmnt.c
@@ -148,14 +148,16 @@ mntversion(Chan *c, char *version, int msize, int returnlen)
f.tag = NOTAG;
f.msize = msize;
f.version = v;
- msg = malloc(8192+IOHDRSZ);
+// msg = malloc(8192+IOHDRSZ);
+ msg = malloc(msize);
if(msg == nil)
exhausted("version memory");
if(waserror()){
free(msg);
nexterror();
}
- k = convS2M(&f, msg, 8192+IOHDRSZ);
+// k = convS2M(&f, msg, 8192+IOHDRSZ);
+ k = convS2M(&f, msg, msize);
if(k == 0)
error("bad fversion conversion on send");
@@ -174,7 +176,8 @@ mntversion(Chan *c, char *version, int msize, int returnlen)
}
/* message sent; receive and decode reply */
- k = devtab[c->type]->read(c, msg, 8192+IOHDRSZ, c->offset);
+// k = devtab[c->type]->read(c, msg, 8192+IOHDRSZ, c->offset);
+ k = devtab[c->type]->read(c, msg, msize, c->offset);
if(k <= 0)
error("EOF receiving fversion reply");
@@ -192,7 +195,7 @@ mntversion(Chan *c, char *version, int msize, int returnlen)
}
if(f.msize > msize)
error("server tries to increase msize in fversion");
- if(f.msize<256 || f.msize>1024*1024)
+ if(f.msize<256 || f.msize>5*1024*1024)
error("nonsense value of msize in fversion");
if(strncmp(f.version, v, strlen(f.version)) != 0)
error("bad 9P version returned from server");