summaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@rei2.9hal>2012-02-11 13:25:23 +0100
committercinap_lenrek <cinap_lenrek@rei2.9hal>2012-02-11 13:25:23 +0100
commit70223416cdf046fe4b84c775bb7146c0af5d7581 (patch)
tree9d40ada4b5baed9847eacf95fbeed639ad574693 /sys
parentf51aa49bb0d93e23cd290c8f6335ff0fa6e9ea73 (diff)
cfs: fix bad memory deref in rstat (from yk's patch/cfs-rstatctlbug)
Diffstat (limited to 'sys')
-rw-r--r--sys/src/cmd/cfs/cfs.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/sys/src/cmd/cfs/cfs.c b/sys/src/cmd/cfs/cfs.c
index 8bedeeb88..2fbf3f421 100644
--- a/sys/src/cmd/cfs/cfs.c
+++ b/sys/src/cmd/cfs/cfs.c
@@ -646,6 +646,7 @@ rwrite(Mfile *mf)
void
rstat(Mfile *mf)
{
+ uchar buf[STATMAX];
Dir d;
if(statson && ctltest(mf)){
@@ -659,8 +660,8 @@ rstat(Mfile *mf)
d.muid = "none";
d.atime = time(nil);
d.mtime = d.atime;
- c.rhdr.nstat = convD2M(&d, c.rhdr.stat,
- sizeof c.rhdr - (c.rhdr.stat - (uchar*)&c.rhdr));
+ c.rhdr.nstat = convD2M(&d, buf, sizeof buf);
+ c.rhdr.stat = buf;
sendreply(0);
return;
}