URI: 
       tdevdraw, libdraw: fix memory leaks by freeing getns() malloced string (#431) - plan9port - [fork] Plan 9 from user space
  HTML git clone git://src.adamsgaard.dk/plan9port
   DIR Log
   DIR Files
   DIR Refs
   DIR README
   DIR LICENSE
       ---
   DIR commit afa34a73a91655f16d24abae491881ae45500d78
   DIR parent 057d8a76a9d840994edf453f97245efb295d9582
  HTML Author: Igor Böhm <boehm.igor@gmail.com>
       Date:   Wed, 22 Jul 2020 20:59:58 +0200
       
       devdraw, libdraw: fix memory leaks by freeing getns() malloced string (#431)
       
       
       Diffstat:
         M src/cmd/devdraw/srv.c               |       8 ++++++--
         M src/libdraw/drawclient.c            |       7 +++++--
       
       2 files changed, 11 insertions(+), 4 deletions(-)
       ---
   DIR diff --git a/src/cmd/devdraw/srv.c b/src/cmd/devdraw/srv.c
       t@@ -88,7 +88,7 @@ threadmain(int argc, char **argv)
        void
        gfx_started(void)
        {
       -        char *addr;
       +        char *ns, *addr;
        
                if(srvname == nil) {
                        // Legacy mode: serving single client on pipes.
       t@@ -97,7 +97,11 @@ gfx_started(void)
                }
        
                // Server mode.
       -        addr = smprint("unix!%s/%s", getns(), srvname);
       +        if((ns = getns()) == nil)
       +                sysfatal("out of memory");
       +
       +        addr = smprint("unix!%s/%s", ns, srvname);
       +        free(ns);
                if(addr == nil)
                        sysfatal("out of memory");
        
   DIR diff --git a/src/libdraw/drawclient.c b/src/libdraw/drawclient.c
       t@@ -23,7 +23,7 @@ int
        _displayconnect(Display *d)
        {
                int pid, p[2], fd, nbuf, n;
       -        char *wsysid, *addr, *id;
       +        char *wsysid, *ns, *addr, *id;
                uchar *buf;
                Wsysmsg w;
        
       t@@ -40,7 +40,10 @@ _displayconnect(Display *d)
                                return -1;
                        }
                        *id++ = '\0';
       -                addr = smprint("unix!%s/%s", getns(), wsysid);
       +                if((ns = getns()) == nil)
       +                        return -1;
       +                addr = smprint("unix!%s/%s", ns, wsysid);
       +                free(ns);
                        if(addr == nil)
                                return -1;
                        fd = dial(addr, 0, 0, 0);