[FFmpeg-devel] [PATCH] ffprobe: fix infinite loop in subtitle decoding

Marton Balint cus at passwd.hu
Mon Mar 12 22:55:40 EET 2018



On Mon, 12 Mar 2018, wm4 wrote:

> On Sun, 11 Mar 2018 18:12:05 +0100
> Marton Balint <cus at passwd.hu> wrote:
>
>> Fixes a regression since 2a88ebd096f3c748a2d99ed1b60b22879b3c567c which caused
>> an infinite loop in the subtitle decoding.
>> 
>> Fixes ticket #6796.
>> 
>> Signed-off-by: Marton Balint <cus at passwd.hu>
>> ---
>>  fftools/ffprobe.c | 3 ++-
>>  1 file changed, 2 insertions(+), 1 deletion(-)
>> 
>> diff --git a/fftools/ffprobe.c b/fftools/ffprobe.c
>> index 967adbe30c..d8032bfddf 100644
>> --- a/fftools/ffprobe.c
>> +++ b/fftools/ffprobe.c
>> @@ -2275,7 +2275,8 @@ static av_always_inline int process_frame(WriterContext *w,
>>              break;
>>
>>          case AVMEDIA_TYPE_SUBTITLE:
>> -            ret = avcodec_decode_subtitle2(dec_ctx, &sub, &got_frame, pkt);
>> +            if (*packet_new || !pkt->data)
>> +                ret = avcodec_decode_subtitle2(dec_ctx, &sub, &got_frame, pkt);
>>              *packet_new = 0;
>>              break;
>>          default:
>
> LGTM, but not sure why the "!pkt->data" check would be needed. The
> flush packet sent at the end will have *packet_new==1.

You're right, pushed without the !pkt->data check.

Thanks,
Marton


More information about the ffmpeg-devel mailing list