diff options
author | cinap_lenrek <cinap_lenrek@centraldogma> | 2011-09-05 18:34:46 +0200 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@centraldogma> | 2011-09-05 18:34:46 +0200 |
commit | 45f2fd3c01768f6483e4d583e4ca06c8e11362f4 (patch) | |
tree | 38cc5e0dc9dd398f4dbe16d7e5b12288f6cc7346 /sys/src/libdraw/readimage.c | |
parent | 9cddb6ed33051b8d19753e348a2eed3296622397 (diff) |
libdraw: fix old subfont leak
Diffstat (limited to 'sys/src/libdraw/readimage.c')
-rw-r--r-- | sys/src/libdraw/readimage.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/sys/src/libdraw/readimage.c b/sys/src/libdraw/readimage.c index 3c80b4982..5745bad9b 100644 --- a/sys/src/libdraw/readimage.c +++ b/sys/src/libdraw/readimage.c @@ -19,8 +19,12 @@ readimage(Display *d, int fd, int dolock) if(readn(fd, hdr, 11) != 11) return nil; - if(memcmp(hdr, "compressed\n", 11) == 0) - return creadimage(d, fd, dolock); + if(memcmp(hdr, "compressed\n", 11) == 0){ + if(i = creadimage(d, fd, dolock)) + goto Done; + return nil; + } + if(readn(fd, hdr+11, 5*12-11) != 5*12-11) return nil; if(d) @@ -123,5 +127,7 @@ readimage(Display *d, int fd, int dolock) miny += dy; } free(tmp); + Done: + setmalloctag(i, getcallerpc(&d)); return i; } |