summaryrefslogtreecommitdiff
path: root/sys/src/libdraw/readimage.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/src/libdraw/readimage.c')
-rw-r--r--sys/src/libdraw/readimage.c10
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;
}