From b5df4900fcdd110221865e58afd7fa48286e2549 Mon Sep 17 00:00:00 2001 From: deuce <> Date: Thu, 17 Mar 2005 02:30:49 +0000 Subject: [PATCH] Fix horrible errors in size of bitmap calculations... width is passed in BITS, not bytes. Hopefully fixed (untested) Thanks to Arpawolf for bringing this to my attention. This bug affects all X console programs (scfg, uedit, umonitor, syncterm, echocfg, sbbsinst, etc) --- src/conio/console.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/conio/console.c b/src/conio/console.c index 8edcd13d3c..44298302d8 100644 --- a/src/conio/console.c +++ b/src/conio/console.c @@ -1207,13 +1207,16 @@ scale_bitmap(char *bitmap, int width, int height, int *multiplier) char *outbyte; int pos; int bmpsize; + int bytesperline=1; + while(bytesperline*8<width) + bytesperline++; if(*multiplier>MAX_SCALE) *multiplier=MAX_SCALE; if(*multiplier < 1) *multiplier=1; - bmpsize=width*height; - ret=(char *)malloc(bmpsize*(*multiplier)*(*multiplier)); + bmpsize=width*height/(8*bytesperline); + ret=(char *)malloc(bmpsize*(*multiplier)*(*multiplier)/(8*bytesperline)); if(ret==NULL) return(NULL); outbyte=ret; -- GitLab