The classical ptr = av_realloc(ptr, size).
Unified · Split
| @@ -488,11 +488,12 @@ static int parse_adaptation_sets(AVFormatContext *s) · 487 unmodified lines | |||
| 488 | state = parsing_streams; | 488 | state = parsing_streams; |
| 489 | } else if (state == parsing_streams) { | 489 | } else if (state == parsing_streams) { |
| 490 | struct AdaptationSet *as = &w->as[w->nb_as - 1]; | 490 | struct AdaptationSet *as = &w->as[w->nb_as - 1]; |
| 491 | int ret = av_reallocp_array(&as->streams, ++as->nb_streams, | ||
| 492 | sizeof(*as->streams)); | ||
| 493 | if (ret < 0) | ||
| 494 | return ret; | ||
| 491 | q = p; | 495 | q = p; |
| 492 | while (*q != '\0' && *q != ',' && *q != ' ') q++; | 496 | while (*q != '\0' && *q != ',' && *q != ' ') q++; |
| 493 | as->streams = av_realloc(as->streams, sizeof(*as->streams) * ++as->nb_streams); | ||
| 494 | if (as->streams == NULL) | ||
| 495 | return AVERROR(ENOMEM); | ||
| 496 | as->streams[as->nb_streams - 1] = to_integer(p, q - p + 1); | 497 | as->streams[as->nb_streams - 1] = to_integer(p, q - p + 1); |
| 497 | if (as->streams[as->nb_streams - 1] < 0 || | 498 | if (as->streams[as->nb_streams - 1] < 0 || |
| 498 | as->streams[as->nb_streams - 1] >= s->nb_streams) { | 499 | as->streams[as->nb_streams - 1] >= s->nb_streams) { |