summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMiguel Freitas <miguelfreitas@users.sourceforge.net>2004-12-08 20:32:42 +0000
committerMiguel Freitas <miguelfreitas@users.sourceforge.net>2004-12-08 20:32:42 +0000
commit5b1b92f114de20160a03388aac8198a04e69b744 (patch)
tree40aa8f31066491a089a3e398de878f87dc69e381
parent7dc2e8a6faba446a5e330d45cf759aeba541b94e (diff)
downloadxine-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.c5
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];