From: Jaroslav Kysela Date: Fri, 30 Oct 2015 12:53:57 +0000 (+0100) Subject: IPTV: m3u parser - fix wrong free X-Git-Tag: v4.2.1~1728 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=48f04e3625b7d1da3e1aaebf72def6c2a5c97b40;p=thirdparty%2Ftvheadend.git IPTV: m3u parser - fix wrong free --- diff --git a/src/input/mpegts/iptv/iptv_http.c b/src/input/mpegts/iptv/iptv_http.c index 799d0951c..3bf2c6ee2 100644 --- a/src/input/mpegts/iptv/iptv_http.c +++ b/src/input/mpegts/iptv/iptv_http.c @@ -133,7 +133,7 @@ iptv_http_complete ( http_client_t *hc ) { iptv_mux_t *im = hc->hc_aux; - char *url, sbuf[512], *s, *p; + char *url, *url2, *s, *p; url_t u; int r; @@ -153,13 +153,16 @@ iptv_http_complete *p = '\0'; if (!urlparse(s, &u)) goto invalid; + url2 = malloc(512); + url2[0] = '\0'; if ((s = http_arg_get(&hc->hc_args, "Host")) != NULL) { - snprintf(sbuf, sizeof(sbuf), "%s://%s%s", + snprintf(url2, 512, "%s://%s%s", hc->hc_ssl ? "https" : "http", s, url); } else if (im->mm_iptv_url_raw) { - snprintf(sbuf, sizeof(sbuf), "%s%s", s, url); + snprintf(url2, 512, "%s%s", s, url); } - url = sbuf; + free(url); + url = url2; urlinit(&u); } if (!urlparse(url, &u)) {