mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
avcodec/parser: Don't return pointer to stack buffer
When flushing, the parser receives a dummy buffer with padding that lives on the stack of av_parser_parse2(). Certain parsers (e.g. Dolby E) only analyze the input, but don't repack it. When flushing, such parsers return a pointer to the stack buffer and a size of 0. And this is also what av_parser_parse2() returns. Fix this by always resetting poutbuf in case poutbuf_size is zero. Reviewed-by: James Almer <jamrial@gmail.com> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
This commit is contained in:
parent
f21b47f38c
commit
9faf3f8bb0
@ -179,6 +179,9 @@ int av_parser_parse2(AVCodecParserContext *s, AVCodecContext *avctx,
|
||||
/* offset of the next frame */
|
||||
s->next_frame_offset = s->cur_offset + index;
|
||||
s->fetch_timestamp = 1;
|
||||
} else {
|
||||
/* Don't return a pointer to dummy_buf. */
|
||||
*poutbuf = NULL;
|
||||
}
|
||||
if (index < 0)
|
||||
index = 0;
|
||||
|
Loading…
Reference in New Issue
Block a user