Unified · Split
| @@ -975,18 +975,22 @@ static int flv_queue_extradata(FLVContext *flv, AVIOContext *pb, int stream, · 974 unmodified lines | |||
| 975 | int new_count = stream + 1; | 975 | int new_count = stream + 1; |
| 976 | 976 | ||
| 977 | if (flv->mt_extradata_cnt < new_count) { | 977 | if (flv->mt_extradata_cnt < new_count) { |
| 978 | flv->mt_extradata = av_realloc(flv->mt_extradata, | 978 | void *tmp = av_realloc_array(flv->mt_extradata, new_count, |
| 979 | sizeof(*flv->mt_extradata) * | 979 | sizeof(*flv->mt_extradata)); |
| 980 | new_count); | 980 | if (!tmp) |
| 981 | flv->mt_extradata_sz = av_realloc(flv->mt_extradata_sz, | ||
| 982 | sizeof(*flv->mt_extradata_sz) * | ||
| 983 | new_count); | ||
| 984 | if (!flv->mt_extradata || !flv->mt_extradata_sz) | ||
| 985 | return AVERROR(ENOMEM); | 981 | return AVERROR(ENOMEM); |
| 982 | flv->mt_extradata = tmp; | ||
| 983 | |||
| 984 | tmp = av_realloc_array(flv->mt_extradata_sz, new_count, | ||
| 985 | sizeof(*flv->mt_extradata_sz)); | ||
| 986 | if (!tmp) | ||
| 987 | return AVERROR(ENOMEM); | ||
| 988 | flv->mt_extradata_sz = tmp; | ||
| 989 | |||
| 986 | // Set newly allocated pointers/sizes to 0 | 990 | // Set newly allocated pointers/sizes to 0 |
| 987 | for (int i = flv->mt_extradata_cnt; i < new_count; i++) { | 991 | for (int i = flv->mt_extradata_cnt; i < new_count; i++) { |
| 988 | flv->mt_extradata[i] = NULL; | 992 | flv->mt_extradata[i] = NULL; |
| 989 | flv->mt_extradata_sz[i] = 0; | 993 | flv->mt_extradata_sz[i] = 0; |
| 990 | } | 994 | } |
| 991 | flv->mt_extradata_cnt = new_count; | 995 | flv->mt_extradata_cnt = new_count; |
| 992 | } | 996 | } |