mirror of https://git.ffmpeg.org/ffmpeg.git
avcodec/jacosubdec: add some memory checks
This commit is contained in:
parent
d210c0e777
commit
4c85073044
|
@ -168,6 +168,7 @@ static void jacosub_to_ass(AVCodecContext *avctx, AVBPrint *dst, const char *src
|
|||
static int jacosub_decode_frame(AVCodecContext *avctx,
|
||||
void *data, int *got_sub_ptr, AVPacket *avpkt)
|
||||
{
|
||||
int ret;
|
||||
AVSubtitle *sub = data;
|
||||
const char *ptr = avpkt->data;
|
||||
|
||||
|
@ -176,7 +177,6 @@ static int jacosub_decode_frame(AVCodecContext *avctx,
|
|||
|
||||
if (*ptr) {
|
||||
AVBPrint buffer;
|
||||
char *dec_sub;
|
||||
|
||||
// skip timers
|
||||
ptr = jss_skip_whitespace(ptr);
|
||||
|
@ -185,9 +185,10 @@ static int jacosub_decode_frame(AVCodecContext *avctx,
|
|||
|
||||
av_bprint_init(&buffer, JSS_MAX_LINESIZE, JSS_MAX_LINESIZE);
|
||||
jacosub_to_ass(avctx, &buffer, ptr);
|
||||
av_bprint_finalize(&buffer, &dec_sub);
|
||||
ff_ass_add_rect(sub, dec_sub, avpkt->pts, avpkt->duration, 0);
|
||||
av_free(dec_sub);
|
||||
ret = ff_ass_add_rect_bprint(sub, &buffer, avpkt->pts, avpkt->duration, 0);
|
||||
av_bprint_finalize(&buffer, NULL);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
}
|
||||
|
||||
end:
|
||||
|
|
Loading…
Reference in New Issue