Mercurial > mplayer.hg
comparison gui/mplayer/mw.c @ 33107:eda3df3e4a9d
Prevent an out-of-bounds array access.
This out-of-bounds array access was of not much effect until r33190, because
the variables falsely changed (set to 1) were either almost always unused
(the last member of the mainItems array) or variable menuIsPresent which only
has effect if there is a menu present (in which case it is set anyway).
With r33190 the wItem (and thus the guiItems) structure size changed and now
variables were accessed whose changings have visible effect. After releasing
the moved main (or playbar) window, the IndexOfItems values got destroyed and
items disappeared.
author | ib |
---|---|
date | Sun, 03 Apr 2011 14:24:36 +0000 |
parents | 676e1222fb21 |
children | 5450a92ac4bd |
comparison
equal
deleted
inserted
replaced
33106:e9e5ee3a1a82 | 33107:eda3df3e4a9d |
---|---|
435 break; | 435 break; |
436 } | 436 } |
437 break; | 437 break; |
438 case wsRLMouseButton: | 438 case wsRLMouseButton: |
439 boxMoved=0; | 439 boxMoved=0; |
440 if ( SelectedItem != -1 ) // NOTE TO MYSELF: only if itButton, itHPotmeter or itVPotmeter | |
441 { | |
440 item=&appMPlayer.mainItems[SelectedItem]; | 442 item=&appMPlayer.mainItems[SelectedItem]; |
441 item->pressed=btnReleased; | 443 item->pressed=btnReleased; |
444 } | |
442 SelectedItem=-1; | 445 SelectedItem=-1; |
443 if ( currentselected == - 1 ) { itemtype=0; break; } | 446 if ( currentselected == - 1 ) { itemtype=0; break; } |
444 value=0; | 447 value=0; |
445 switch( itemtype ) | 448 switch( itemtype ) |
446 { | 449 { |