This avoids crashes when initializing the range coder for the first slice context.
Unified · Split
| @@ -194,6 +194,10 @@ av_cold int ffv1_init_slice_contexts(FFV1Context *f) · 193 unmodified lines | |||
| 194 | int i; | 194 | int i; |
| 195 | 195 | ||
| 196 | f->slice_count = f->num_h_slices * f->num_v_slices; | 196 | f->slice_count = f->num_h_slices * f->num_v_slices; |
| 197 | if (f->slice_count <= 0) { | ||
| 198 | av_log(f->avctx, AV_LOG_ERROR, "Invalid number of slices\n"); | ||
| 199 | return AVERROR(EINVAL); | ||
| 200 | } | ||
| 197 | 201 | ||
| 198 | for (i = 0; i < f->slice_count; i++) { | 202 | for (i = 0; i < f->slice_count; i++) { |
| 199 | FFV1Context *fs = av_mallocz(sizeof(*fs)); | 203 | FFV1Context *fs = av_mallocz(sizeof(*fs)); |