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>
(cherry picked from commit 9faf3f8bb0
)
This commit is contained in:
parent
2a5c577ef3
commit
2b114adcf4
@ -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