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