[PATCH 1/5] comctl32/listbox: Check for out of bounds index using an unsigned index

Huw Davies huw at codeweavers.com
Thu Feb 7 03:52:40 CST 2019


On Thu, Jan 31, 2019 at 05:23:19PM +0200, Gabriel Ivăncescu wrote:
> Signed-off-by: Gabriel Ivăncescu <gabrielopcode at gmail.com>
> ---
>  dlls/comctl32/listbox.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/dlls/comctl32/listbox.c b/dlls/comctl32/listbox.c
> index cb645b4..71f1c05 100644
> --- a/dlls/comctl32/listbox.c
> +++ b/dlls/comctl32/listbox.c
> @@ -489,7 +489,7 @@ static INT LISTBOX_GetItemFromPoint( const LB_DESCR *descr, INT x, INT y )
>   * Paint an item.
>   */
>  static void LISTBOX_PaintItem( LB_DESCR *descr, HDC hdc, const RECT *rect,
> -			       INT index, UINT action, BOOL ignoreFocus )
> +			       UINT index, UINT action, BOOL ignoreFocus )

Could you leave this change out?  descr->nb_items itself is signed as is the index
parameter of LISTBOX_RePaintItem().

>  {
>      BOOL selected = FALSE, focused;
>      LB_ITEMDATA *item = NULL;
> @@ -508,7 +508,7 @@ static void LISTBOX_PaintItem( LB_DESCR *descr, HDC hdc, const RECT *rect,
>          RECT r;
>          HRGN hrgn;
>  
> -	if (!item)
> +	if (index >= descr->nb_items)
>  	{
>  	    if (action == ODA_FOCUS)
>  		DrawFocusRect( hdc, rect );
> -- 
> 2.19.1
> 
> 
> 



More information about the wine-devel mailing list