summaryrefslogtreecommitdiff
path: root/sys/src/libdraw/readimage.c
diff options
context:
space:
mode:
authorglenda <glenda@flatbox.9hal>2011-09-03 09:17:46 -0400
committerglenda <glenda@flatbox.9hal>2011-09-03 09:17:46 -0400
commit41a34b227b101e7c91ac51e20ad1c2ddec390122 (patch)
tree102aea4d2bbf622705340ea8e4479a3910e27617 /sys/src/libdraw/readimage.c
parentb298429804d255c629dfc15f59081f2b05b513a8 (diff)
libdraw: make loadimage and readimage handle wide images
Diffstat (limited to 'sys/src/libdraw/readimage.c')
-rw-r--r--sys/src/libdraw/readimage.c7
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){