On Tue, May 31, 2011 at 07:19:26PM +0200, Aurélien Aptel wrote:
> > transparency support. In my opinion "st" seems like not very stable now,
> 
> If you found a bug, please report it. It's the only way we can fix it.

Code for text selection is buggy.  I can only see what I selected after
either I release mouse or when st is compiled with -fno-strict-aliasing.
Can't find how to fix it.

BTW I have found out-of-bounds read which causes SIGSEGV. Function
bmotion calls drawregion with y2 > term.row on line 603:

drawregion(0, (starty > 0 ? starty : 0), term.col, (sel.ey < term.row ?  endy+1 
: term.row));

It sets endy to MAX(oldey, sel.ey).  Everything is ok when sel.ey >
oldey, but oldey is not checked.  So if you, while selecting, move
mouse out of terminal window and back, it segfaults.

drawregion line should be changed to

drawregion(0, (starty > 0 ? starty : 0), term.col, (endy < term.row ?  endy+1 : 
term.row));

Another bug: while selecting, move mouse far higher than first row.
Text disappears until you move mouse back.


Reply via email to