aboutsummaryrefslogtreecommitdiffstats
path: root/libavformat/dashdec.c
diff options
context:
space:
mode:
authorBrendan McGrath <redmcg@redmandi.dyndns.org>2018-01-21 13:20:02 +0800
committerSteven Liu <lq@chinaffmpeg.org>2018-01-21 13:20:02 +0800
commit1f48c5c0671bb4f39c9dc3ec44c727f1680547b3 (patch)
tree95d3ff74c2e0162921133a31ba178b3b9eea7994 /libavformat/dashdec.c
parent2472dbc7a770a908a2f511ec337ec392ca3e3afa (diff)
downloadffmpeg-1f48c5c0671bb4f39c9dc3ec44c727f1680547b3.tar.gz
dashdec: Only free url string if being reused
If no representation bandwidth value is set, the url value returned by get_content_url is corrupt (as it has been freed). This change ensures the url string is not freed unless it is about to be reused Changes since v1: 1 removed the unneeded 'if' statement (as pointed out by Michael Niedermayer 2 added comment to make it clear why the av_free was required Signed-off-by: Brendan McGrath <redmcg@redmandi.dyndns.org>
Diffstat (limited to 'libavformat/dashdec.c')
-rw-r--r--libavformat/dashdec.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/libavformat/dashdec.c b/libavformat/dashdec.c
index a080bf3584..7d960670b9 100644
--- a/libavformat/dashdec.c
+++ b/libavformat/dashdec.c
@@ -483,9 +483,10 @@ static char *get_content_url(xmlNodePtr *baseurl_nodes,
return NULL;
}
av_strlcpy(tmp_str, url, sizeof(tmp_str));
- av_free(url);
}
if (rep_bandwidth_val && tmp_str[0] != '\0') {
+ // free any previously assigned url before reassigning
+ av_free(url);
url = av_strireplace(tmp_str, "$Bandwidth$", (const char*)rep_bandwidth_val);
if (!url) {
return NULL;