[FFmpeg-devel] [PATCH] avformat/rtmpproto: Don't free AVOpt-strings manually, fix crash

Liu Steven lq at chinaffmpeg.org
Sun Mar 31 05:16:20 EEST 2024



> On Mar 30, 2024, at 12:21, Andreas Rheinhardt <andreas.rheinhardt at outlook.com> wrote:
> 
> Andreas Rheinhardt:
Hi Andreas,

>> Besides being redundant, freeing manually is actually harmful here,
>> as rtmp_close() may call gen_fcunpublish_stream() which dereferences
>> rt->playpath.
>> 
>> Reported-by: Armin Hasitzka <armin at grabyo.com>
>> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt at outlook.com>
>> ---
>> libavformat/rtmpproto.c | 3 ---
>> 1 file changed, 3 deletions(-)
>> 
>> diff --git a/libavformat/rtmpproto.c b/libavformat/rtmpproto.c
>> index 4b01b67d28..b1d73b3d75 100644
>> --- a/libavformat/rtmpproto.c
>> +++ b/libavformat/rtmpproto.c
>> @@ -2917,9 +2917,6 @@ reconnect:
>>     return 0;
>> 
>> fail:
>> -    av_freep(&rt->playpath);
>> -    av_freep(&rt->tcurl);
>> -    av_freep(&rt->flashver);
>>     av_dict_free(opts);
>>     rtmp_close(s);
>>     return ret;
> 
> I am pinging this and explicitly cc'ing Steven Liu, whose commit
> 991cf95fdeebc3af added the av_freeps to be removed above. Steven, did
> you just feel that there was missing freeing code for the buffers above
> or was there an actually confirmed memleak (there shouldn't be)?

Confirmed memleak, but it’s long time i cannot sure how to reproduce that, I test rtmp those years use SRS.



Thanks
Steven




More information about the ffmpeg-devel mailing list