Fixes invalid writes when there are more blocks in a run than total remaining 
blocks

(see CVE-2014-8548)
---
 libavcodec/rpza.c |    5 +++++
 1 file changed, 5 insertions(+)

diff --git a/libavcodec/rpza.c b/libavcodec/rpza.c
index b71ebd1..7cb6b89 100644
--- a/libavcodec/rpza.c
+++ b/libavcodec/rpza.c
@@ -68,6 +68,11 @@ typedef struct RpzaContext {
             row_ptr  += stride * 4; \
         }                           \
         total_blocks--;             \
+        if (total_blocks < !!n_blocks) \
+        { \
+            av_log(s->avctx, AV_LOG_INFO, "warning: block counter just went 
negative (this should not happen)\n"); \
+            return; \
+        } \
     }
 
 static int rpza_decode_stream(RpzaContext *s)
-- 
1.7.9.5

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel

Reply via email to