diff --git a/src/libmemdraw/alloc.c b/src/libmemdraw/alloc.c index b6ad61a7..fa23b5e0 100644 --- a/src/libmemdraw/alloc.c +++ b/src/libmemdraw/alloc.c @@ -141,7 +141,8 @@ byteaddr(Memimage *i, Point p) { uchar *a; - a = i->data->bdata+i->zero+sizeof(u32int)*p.y*i->width; + /* careful to sign-extend negative p.y for 64-bits */ + a = i->data->bdata+i->zero+(int)(sizeof(u32int)*p.y*i->width); if(i->depth < 8){ /*