diff options
author | Brendan McGrath <redmcg@redmandi.dyndns.org> | 2018-01-21 08:20:02 +0300 |
---|---|---|
committer | Steven Liu <lq@chinaffmpeg.org> | 2018-01-21 08:20:02 +0300 |
commit | 1f48c5c0671bb4f39c9dc3ec44c727f1680547b3 (patch) | |
tree | 95d3ff74c2e0162921133a31ba178b3b9eea7994 /libavformat | |
parent | 2472dbc7a770a908a2f511ec337ec392ca3e3afa (diff) |
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')
-rw-r--r-- | libavformat/dashdec.c | 3 |
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; |