[FFmpeg-devel] [PATCH] avformat/hlsenc: Check that data is set
Steven Liu
lq at chinaffmpeg.org
Sat Jan 20 17:56:39 EET 2018
> 在 2018年1月20日,上午10:35,Jeyapal, Karthick <kjeyapal at akamai.com> 写道:
>
>
>
>> On 1/20/18 6:29 AM, Brendan McGrath wrote:
>> If codecpar->extradata is not set (for example, when the stream goes
>> through the 'tee' muxer), then a segfault occurs.
>>
>> This patch ensures the data variable is not null before attempting
>> to access it
>>
>> Signed-off-by: Brendan McGrath <redmcg at redmandi.dyndns.org>
>> ---
>> Before the var_stream_map option was available - I was using the tee
>> muxer to create each resolution as an individual stream.
>>
>> When running this configuration after the most recent hlsenc change
>> I hit a segfault
>>
>> The most simple command which recreates the segfault is:
>> ffmpeg -i in.ts -map 0:a -map 0:v -c:a aac -c:v h264 \
>> -f tee [select=\'a,v\':f=hls]tv_hls_hd.m3u8
>>
>> libavformat/hlsenc.c | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/libavformat/hlsenc.c b/libavformat/hlsenc.c
>> index 8ad906a..42e437f 100644
>> --- a/libavformat/hlsenc.c
>> +++ b/libavformat/hlsenc.c
>> @@ -308,7 +308,7 @@ static void write_codec_attr(AVStream *st, VariantStream *vs) {
>>
>> if (st->codecpar->codec_id == AV_CODEC_ID_H264) {
>> uint8_t *data = st->codecpar->extradata;
>> - if ((data[0] | data[1] | data[2]) == 0 && data[3] == 1 && (data[4] & 0x1F) == 7) {
>> + if (data && (data[0] | data[1] | data[2]) == 0 && data[3] == 1 && (data[4] & 0x1F) == 7) {
>> snprintf(attr, sizeof(attr),
>> "avc1.%02x%02x%02x", data[5], data[6], data[7]);
>> } else {
>
> LGTM. Thanks for the fix
will apply
More information about the ffmpeg-devel
mailing list