diff options
author | Miguel Freitas <miguelfreitas@users.sourceforge.net> | 2004-12-08 20:32:42 +0000 |
---|---|---|
committer | Miguel Freitas <miguelfreitas@users.sourceforge.net> | 2004-12-08 20:32:42 +0000 |
commit | 5b1b92f114de20160a03388aac8198a04e69b744 (patch) | |
tree | 40aa8f31066491a089a3e398de878f87dc69e381 | |
parent | 7dc2e8a6faba446a5e330d45cf759aeba541b94e (diff) | |
download | xine-lib-5b1b92f114de20160a03388aac8198a04e69b744.tar.gz xine-lib-5b1b92f114de20160a03388aac8198a04e69b744.tar.bz2 |
fix crash with Fraunhofer__a_driving_force_in_innovation__* files
(patch needs to be sent upstream)
CVS patchset: 7208
CVS date: 2004/12/08 20:32:42
-rw-r--r-- | src/libffmpeg/libavcodec/h264.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/libffmpeg/libavcodec/h264.c b/src/libffmpeg/libavcodec/h264.c index a456e6074..889900362 100644 --- a/src/libffmpeg/libavcodec/h264.c +++ b/src/libffmpeg/libavcodec/h264.c @@ -2428,7 +2428,10 @@ static void hl_decode_mb(H264Context *h){ int tr; if(!topright_avail){ - tr= ptr[3 - linesize]*0x01010101; + /* xine: avoid (negative) buffer overflow */ + tr= (!mb_y && linesize > h->block_offset[i]) ? + ptr[3]*0x01010101 : + ptr[3 - linesize]*0x01010101; topright= (uint8_t*) &tr; }else if(i==5 && h->deblocking_filter){ tr= *(uint32_t*)h->top_border[mb_x+1]; |