mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-04-19 09:02:26 +02:00
avformat/dashdec: Fix leak of AVDictionary on error
Just postpone the allocation of the dict until it is really needed (after the checks that can fail). Reviewed-by: Steven Liu <lq@chinaffmpeg.org> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
This commit is contained in:
parent
eb344862e4
commit
4b8fdf70a8
@ -407,9 +407,6 @@ static int open_url(AVFormatContext *s, AVIOContext **pb, const char *url,
|
|||||||
const char *proto_name = NULL;
|
const char *proto_name = NULL;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
av_dict_copy(&tmp, opts, 0);
|
|
||||||
av_dict_copy(&tmp, opts2, 0);
|
|
||||||
|
|
||||||
if (av_strstart(url, "crypto", NULL)) {
|
if (av_strstart(url, "crypto", NULL)) {
|
||||||
if (url[6] == '+' || url[6] == ':')
|
if (url[6] == '+' || url[6] == ':')
|
||||||
proto_name = avio_find_protocol_name(url + 7);
|
proto_name = avio_find_protocol_name(url + 7);
|
||||||
@ -443,6 +440,8 @@ static int open_url(AVFormatContext *s, AVIOContext **pb, const char *url,
|
|||||||
return AVERROR_INVALIDDATA;
|
return AVERROR_INVALIDDATA;
|
||||||
|
|
||||||
av_freep(pb);
|
av_freep(pb);
|
||||||
|
av_dict_copy(&tmp, opts, 0);
|
||||||
|
av_dict_copy(&tmp, opts2, 0);
|
||||||
ret = avio_open2(pb, url, AVIO_FLAG_READ, c->interrupt_callback, &tmp);
|
ret = avio_open2(pb, url, AVIO_FLAG_READ, c->interrupt_callback, &tmp);
|
||||||
if (ret >= 0) {
|
if (ret >= 0) {
|
||||||
// update cookies on http response with setcookies.
|
// update cookies on http response with setcookies.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user