summaryrefslogtreecommitdiff
path: root/sys/src/cmd/sam
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@rei2.9hal>2012-01-29 03:21:09 +0100
committercinap_lenrek <cinap_lenrek@rei2.9hal>2012-01-29 03:21:09 +0100
commit105ebc327abe965cf11242e6c300d28979938f5e (patch)
tree02b6189a8dcc0d748033b1faac0a0b3801864c31 /sys/src/cmd/sam
parent21cedbedb24c2af04ac3b141ff6ce112c5d6e582 (diff)
sam: fix memory leak for name in fwrite
Diffstat (limited to 'sys/src/cmd/sam')
-rw-r--r--sys/src/cmd/sam/io.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/sys/src/cmd/sam/io.c b/sys/src/cmd/sam/io.c
index 3fee95a05..f995bb7c9 100644
--- a/sys/src/cmd/sam/io.c
+++ b/sys/src/cmd/sam/io.c
@@ -41,6 +41,7 @@ writef(File *f)
f->qidpath = qid;
f->mtime = mtime;
warn_S(Wdate, &genstr);
+ free(name);
return;
}
if(genc)
@@ -49,8 +50,10 @@ writef(File *f)
if((io=create(genc, 1, 0666L)) < 0)
error_r(Ecreate, genc);
dprint("%s: ", genc);
- if(statfd(io, 0, 0, 0, &length, &appendonly) > 0 && appendonly && length>0)
+ if(statfd(io, 0, 0, 0, &length, &appendonly) > 0 && appendonly && length>0){
+ free(name);
error(Eappend);
+ }
n = writeio(f);
if(f->name.s[0]==0 || samename){
if(addr.r.p1==0 && addr.r.p2==f->nc)
@@ -70,6 +73,7 @@ writef(File *f)
checkqid(f);
}
}
+ free(name);
}
Posn