diff options
author | cinap_lenrek <cinap_lenrek@gmx.de> | 2012-04-30 11:48:30 +0200 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@gmx.de> | 2012-04-30 11:48:30 +0200 |
commit | 748bdc13b2697e3e86c5955d2eb39e1f7c40f93e (patch) | |
tree | bd25aa38aad5912b1898449155cdbb9deaeaeb76 /sys/src/cmd/faces | |
parent | a124609b6e7ad036c53360623b5fdefba58fe4b4 (diff) |
faces: fix memory leaks
Diffstat (limited to 'sys/src/cmd/faces')
-rw-r--r-- | sys/src/cmd/faces/facedb.c | 14 | ||||
-rw-r--r-- | sys/src/cmd/faces/util.c | 3 |
2 files changed, 14 insertions, 3 deletions
diff --git a/sys/src/cmd/faces/facedb.c b/sys/src/cmd/faces/facedb.c index 8cbb1a79d..380670fbf 100644 --- a/sys/src/cmd/faces/facedb.c +++ b/sys/src/cmd/faces/facedb.c @@ -270,8 +270,10 @@ tryfindfiledir(char *dom, char *user, char *dir) * Ignore 512x512 directories. * Save 48x48 directories for later. */ - if((fd = open(dir, OREAD)) < 0) + if((fd = open(dir, OREAD)) < 0){ + free(dom); return nil; + } while((n = dirread(fd, &d)) > 0){ for(i=0; i<n; i++){ if((d[i].mode&DMDIR) @@ -288,6 +290,7 @@ tryfindfiledir(char *dom, char *user, char *dir) free(dom); return x; } + free(ndir); } } free(d); @@ -340,8 +343,12 @@ findfile(Face *f, char *dom, char *user) } if(dom == nil) dom = facedom; - if(homeface == nil) - homeface = smprint("%s/lib/face", getenv("home")); + if(homeface == nil){ + if((p = getenv("home")) != nil){ + homeface = smprint("%s/lib/face", p); + free(p); + } + } f->unknown = 0; if((p = tryfindfile(dom, user)) != nil) @@ -575,4 +582,5 @@ findbit(Face *f) replclipr(f->bit, 1, Rect(0, 0, Facesize, Facesize)); f->mask = nil; } + free(fn); } diff --git a/sys/src/cmd/faces/util.c b/sys/src/cmd/faces/util.c index 2f4f17ea8..bde1ef30c 100644 --- a/sys/src/cmd/faces/util.c +++ b/sys/src/cmd/faces/util.c @@ -14,6 +14,7 @@ emalloc(ulong sz) exits("mem"); } memset(v, 0, sz); + setmalloctag(v, getcallerpc(&sz)); return v; } @@ -25,6 +26,7 @@ erealloc(void *v, ulong sz) fprint(2, "out of memory allocating %ld\n", sz); exits("mem"); } + setrealloctag(v, getcallerpc(&sz)); return v; } @@ -36,6 +38,7 @@ estrdup(char *s) fprint(2, "out of memory in strdup(%.10s)\n", s); exits("mem"); } + setmalloctag(t, getcallerpc(&s)); return t; } |