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);
        }