https://gitlab.synchro.net/main/sbbs/-/issues/192#note_1258
Ok I've looked at this a little bit more. The exception happens in block.c w/ the `free` on line 276. There are only two `free` calls in the entire file and the other one is not called prior to experiencing the error. The way glibc works is this error can be caused by either a double free or heap corruption. I suspect it is the latter given the following:```c buf=(char *)malloc(80*ti.screenheight*2); memcpy(buf,Screen[ActivePage][FirstLine],80*ti.screenheight*2); for(y=Y1-FirstLine;y<=Y2-FirstLine;y++) { for(x=X1;x<=X2;x++) { buf[y*160+x*2+1]=112; } } if(FullScreen) puttext(1,1,80,ti.screenheight-1,buf); else puttext(1,2,80,ti.screenheight-1,buf); free(buf);```1. The problem only occurs when the entire screen is selected and you select down an additional line.2. As mentioned in my prior note, it appears that the `buf` array is modified outside of its initial bounds when moving tho the next line w/ 80 columns selected. If I recall, this can lead to heap corruption, but my c-memory allocation is
a bit rusty.
--- SBBSecho 3.12-Linux
* Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)