diff options
author | glenda <glenda@flatbox.9hal> | 2011-09-03 09:17:46 -0400 |
---|---|---|
committer | glenda <glenda@flatbox.9hal> | 2011-09-03 09:17:46 -0400 |
commit | 41a34b227b101e7c91ac51e20ad1c2ddec390122 (patch) | |
tree | 102aea4d2bbf622705340ea8e4479a3910e27617 /sys/src/libdraw/readimage.c | |
parent | b298429804d255c629dfc15f59081f2b05b513a8 (diff) |
libdraw: make loadimage and readimage handle wide images
Diffstat (limited to 'sys/src/libdraw/readimage.c')
-rw-r--r-- | sys/src/libdraw/readimage.c | 7 |
1 files changed, 2 insertions, 5 deletions
diff --git a/sys/src/libdraw/readimage.c b/sys/src/libdraw/readimage.c index 61dbd12a6..3c80b4982 100644 --- a/sys/src/libdraw/readimage.c +++ b/sys/src/libdraw/readimage.c @@ -72,6 +72,8 @@ readimage(Display *d, int fd, int dolock) maxy = r.max.y; l = bytesperline(r, chantodepth(chan)); + if(l > chunk) + chunk = l; if(d){ if(dolock) lockdisplay(d); @@ -85,7 +87,6 @@ readimage(Display *d, int fd, int dolock) if(i == nil) return nil; } - tmp = malloc(chunk); if(tmp == nil) goto Err; @@ -93,10 +94,6 @@ readimage(Display *d, int fd, int dolock) dy = maxy - miny; if(dy*l > chunk) dy = chunk/l; - if(dy <= 0){ - werrstr("readimage: image too wide for buffer"); - goto Err; - } n = dy*l; m = readn(fd, tmp, n); if(m != n){ |