summaryrefslogtreecommitdiff
path: root/libavcodec/ffv1dec.c
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2012-11-07 13:26:37 +0100
committerMichael Niedermayer <michaelni@gmx.at>2012-11-07 13:26:37 +0100
commitdd11615bbca6ca38e0d9696cc3a4e7ee9c324cdc (patch)
treec8b302d08647a9023832d9cf6183f57ab60619dc /libavcodec/ffv1dec.c
parentcb395929e3793189403e473f208a669debe825d0 (diff)
ffv1dec: more completely check slice count
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavcodec/ffv1dec.c')
-rw-r--r--libavcodec/ffv1dec.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/libavcodec/ffv1dec.c b/libavcodec/ffv1dec.c
index 7a4463e4ac..9cd0cff344 100644
--- a/libavcodec/ffv1dec.c
+++ b/libavcodec/ffv1dec.c
@@ -469,9 +469,10 @@ static int read_extra_header(FFV1Context *f)
f->num_h_slices = 1 + get_symbol(c, state, 0);
f->num_v_slices = 1 + get_symbol(c, state, 0);
- if (f->num_h_slices > (unsigned)f->width ||
- f->num_v_slices > (unsigned)f->height) {
- av_log(f->avctx, AV_LOG_ERROR, "too many slices\n");
+ if (f->num_h_slices > (unsigned)f->width || !f->num_h_slices ||
+ f->num_v_slices > (unsigned)f->height || !f->num_v_slices
+ ) {
+ av_log(f->avctx, AV_LOG_ERROR, "slice count invalid\n");
return AVERROR_INVALIDDATA;
}