Browse Source

avformat/utils: Keep internal and external av_read_frame() packets in sync.

Otherwise, during error conditions, the caller will be left with
dangling pointers to a destructed packet => boom.

BUG=242786
TEST=ffmpeg_regression_tests

Commit slightly simplified by commiter
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
tags/n2.0
Dale Curtis Michael Niedermayer 12 years ago
parent
commit
c54a1565f5
1 changed files with 3 additions and 0 deletions
  1. +3
    -0
      libavformat/utils.c

+ 3
- 0
libavformat/utils.c View File

@@ -1506,6 +1506,9 @@ static int read_frame_internal(AVFormatContext *s, AVPacket *pkt)
st->skip_to_keyframe = 0; st->skip_to_keyframe = 0;
if (st->skip_to_keyframe) { if (st->skip_to_keyframe) {
av_free_packet(&cur_pkt); av_free_packet(&cur_pkt);
if (got_packet) {
*pkt = cur_pkt;
}
got_packet = 0; got_packet = 0;
} }
} }


Loading…
Cancel
Save