This will likely also fix CID 1452589 and 1452460, false positives resulting from Coverity thinking that av_dict_set() automatically frees its key and value parameters (even without the AV_DICT_DONT_STRDUP_* flags).
Signed-off-by: Andreas Rheinhardt <andreas.rheinha...@gmail.com> --- libavformat/mpegts.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/libavformat/mpegts.c b/libavformat/mpegts.c index 587ed33327..e0f3a5eab9 100644 --- a/libavformat/mpegts.c +++ b/libavformat/mpegts.c @@ -2611,6 +2611,7 @@ static void sdt_cb(MpegTSFilter *filter, const uint8_t *section, int section_len desc_tag, desc_len); switch (desc_tag) { + AVProgram *program; case 0x48: service_type = get8(&p, p_end); if (service_type < 0) @@ -2619,16 +2620,15 @@ static void sdt_cb(MpegTSFilter *filter, const uint8_t *section, int section_len if (!provider_name) break; name = getstr8(&p, p_end); - if (name) { - AVProgram *program = av_new_program(ts->stream, sid); - if (program) { - av_dict_set(&program->metadata, "service_name", name, 0); - av_dict_set(&program->metadata, "service_provider", - provider_name, 0); - } + if (name && (program = av_new_program(ts->stream, sid))) { + av_dict_set(&program->metadata, "service_name", + name, AV_DICT_DONT_STRDUP_VAL); + av_dict_set(&program->metadata, "service_provider", + provider_name, AV_DICT_DONT_STRDUP_VAL); + } else { + av_free(name); + av_free(provider_name); } - av_free(name); - av_free(provider_name); break; default: break; -- 2.20.1 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".