diff options
author | Ori Bernstein <ori@eigenstate.org> | 2019-12-06 12:08:00 -0800 |
---|---|---|
committer | Ori Bernstein <ori@eigenstate.org> | 2019-12-06 12:08:00 -0800 |
commit | 480d7b8f5f0ccb52391c41ffa58c196618827346 (patch) | |
tree | 901418312f73009123520d7459af2099763f81f4 | |
parent | 450ec696ee46f79159395a89c9a97bc8354616ba (diff) |
fix some acme memory leaks
(imported from plan9port 7ca1c90109e17dced4b38fbaadea9d2cf39871b7,
some tag restoration lines not relevant.)
-rw-r--r-- | sys/src/cmd/acme/acme.c | 7 | ||||
-rw-r--r-- | sys/src/cmd/acme/exec.c | 1 |
2 files changed, 6 insertions, 2 deletions
diff --git a/sys/src/cmd/acme/acme.c b/sys/src/cmd/acme/acme.c index 69ea715ce..d5addedbd 100644 --- a/sys/src/cmd/acme/acme.c +++ b/sys/src/cmd/acme/acme.c @@ -307,15 +307,18 @@ static int errorfd; void acmeerrorproc(void *) { - char *buf; + char *buf, *s; int n; threadsetname("acmeerrorproc"); buf = emalloc(8192+1); while((n=read(errorfd, buf, 8192)) >= 0){ buf[n] = '\0'; - sendp(cerr, estrdup(buf)); + s = estrdup(buf); + sendp(cerr, s); + free(s); } + free(buf); } void diff --git a/sys/src/cmd/acme/exec.c b/sys/src/cmd/acme/exec.c index f504275a5..3dbd001c5 100644 --- a/sys/src/cmd/acme/exec.c +++ b/sys/src/cmd/acme/exec.c @@ -159,6 +159,7 @@ execute(Text *t, uint aq0, uint aq1, int external, Text *argt) aa = getbytearg(argt, TRUE, TRUE, &a); if(a){ if(strlen(a) > EVENTSIZE){ /* too big; too bad */ + free(r); free(aa); free(a); warning(nil, "`argument string too long\n"); |