diff options
author | cinap_lenrek <cinap_lenrek@rei2.9hal> | 2012-01-29 03:21:09 +0100 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@rei2.9hal> | 2012-01-29 03:21:09 +0100 |
commit | 105ebc327abe965cf11242e6c300d28979938f5e (patch) | |
tree | 02b6189a8dcc0d748033b1faac0a0b3801864c31 /sys/src/cmd/sam | |
parent | 21cedbedb24c2af04ac3b141ff6ce112c5d6e582 (diff) |
sam: fix memory leak for name in fwrite
Diffstat (limited to 'sys/src/cmd/sam')
-rw-r--r-- | sys/src/cmd/sam/io.c | 6 |
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 |