Mercurial > mplayer.hg
comparison libvo/vo_directx.c @ 32481:983577adcf0e
Fix possible out-of-bounds access.
author | reimar |
---|---|
date | Sat, 30 Oct 2010 15:29:20 +0000 |
parents | fbe5c829c69b |
children | 8fa2f43cb760 |
comparison
equal
deleted
inserted
replaced
32480:60453d752380 | 32481:983577adcf0e |
---|---|
227 static uint32_t Directx_CreateOverlay(uint32_t imgfmt) | 227 static uint32_t Directx_CreateOverlay(uint32_t imgfmt) |
228 { | 228 { |
229 HRESULT ddrval; | 229 HRESULT ddrval; |
230 DDSURFACEDESC2 ddsdOverlay; | 230 DDSURFACEDESC2 ddsdOverlay; |
231 uint32_t i=0; | 231 uint32_t i=0; |
232 while ( i < NUM_FORMATS +1 && imgfmt != g_ddpf[i].img_format) | 232 while ( i < NUM_FORMATS && imgfmt != g_ddpf[i].img_format) |
233 { | 233 { |
234 i++; | 234 i++; |
235 } | 235 } |
236 if (!g_lpdd || !g_lpddsPrimary) | 236 if (!g_lpdd || !g_lpddsPrimary || i == NUM_FORMATS) |
237 return 1; | 237 return 1; |
238 //cleanup | 238 //cleanup |
239 if (g_lpddsOverlay)g_lpddsOverlay->lpVtbl->Release(g_lpddsOverlay); | 239 if (g_lpddsOverlay)g_lpddsOverlay->lpVtbl->Release(g_lpddsOverlay); |
240 if (g_lpddsBack)g_lpddsBack->lpVtbl->Release(g_lpddsBack); | 240 if (g_lpddsBack)g_lpddsBack->lpVtbl->Release(g_lpddsBack); |
241 g_lpddsOverlay= NULL; | 241 g_lpddsOverlay= NULL; |