tacme: fix double-free in acmeerrorproc - plan9port - [fork] Plan 9 from user space
(HTM) git clone git://src.adamsgaard.dk/plan9port
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) README
(DIR) LICENSE
---
(DIR) commit 73661401ea00ef6a862d0a4b292e091b319c25bc
(DIR) parent 90971376a5e8620fc62579aa1b3be26245ec8c06
(HTM) Author: Russ Cox <rsc@swtch.com>
Date: Mon, 18 Jan 2021 14:30:40 -0500
acme: fix double-free in acmeerrorproc
The receiver of cerr takes ownership of s.
Diffstat:
M src/cmd/acme/acme.c | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
---
(DIR) diff --git a/src/cmd/acme/acme.c b/src/cmd/acme/acme.c
t@@ -383,7 +383,7 @@ int erroutfd;
void
acmeerrorproc(void *v)
{
- char *buf, *s;
+ char *buf;
int n;
USED(v);
t@@ -391,9 +391,7 @@ acmeerrorproc(void *v)
buf = emalloc(8192+1);
while((n=read(errorfd, buf, 8192)) >= 0){
buf[n] = '\0';
- s = estrdup(buf);
- sendp(cerr, s);
- free(s);
+ sendp(cerr, estrdup(buf));
}
free(buf);
}