mirror of
https://github.com/fish-shell/fish-shell.git
synced 2025-02-01 11:09:45 +08:00
Avoid reading before begining of buffer when moving/erasing word, fixes crash bug reported by Martin Bähr and further described by Philip Ganchev.
darcs-hash:20061016143912-ac50b-1deacc00f6c0438e6d760568ef5b1e47e3fe08c4.gz
This commit is contained in:
parent
afcab9f1b3
commit
49bff53370
14
reader.c
14
reader.c
|
@ -1582,12 +1582,12 @@ static void move_word( int dir, int erase, int new )
|
|||
|
||||
if( !dir )
|
||||
{
|
||||
if( end_buff_pos == 0 )
|
||||
if( end_buff_pos <= 0 )
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
if( end_buff_pos == data->buff_len )
|
||||
if( end_buff_pos >= data->buff_len )
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -1618,12 +1618,12 @@ static void move_word( int dir, int erase, int new )
|
|||
|
||||
if( !dir )
|
||||
{
|
||||
if( end_buff_pos == 0 )
|
||||
if( end_buff_pos <= 0 )
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
if( end_buff_pos == data->buff_len )
|
||||
if( end_buff_pos >= data->buff_len )
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -1649,6 +1649,12 @@ static void move_word( int dir, int erase, int new )
|
|||
{
|
||||
end_buff_pos+=step;
|
||||
}
|
||||
|
||||
/*
|
||||
Make sure we don't move beyond begining or end of buffer
|
||||
*/
|
||||
end_buff_pos = maxi( 0, mini( end_buff_pos, data->buff_len ) );
|
||||
|
||||
|
||||
|
||||
if( erase )
|
||||
|
|
Loading…
Reference in New Issue
Block a user