mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2025-03-21 02:19:37 +00:00
avformat/hls: check output string is usable of ff_make_absolute_url
fix ticket: 8688 should goto failed workflow if cannot get usable string by ff_make_absolute_url Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
This commit is contained in:
parent
029ff31af6
commit
ea1940c6e2
@ -311,6 +311,8 @@ static struct playlist *new_playlist(HLSContext *c, const char *url,
|
||||
return NULL;
|
||||
reset_packet(&pls->pkt);
|
||||
ff_make_absolute_url(pls->url, sizeof(pls->url), base, url);
|
||||
if (!pls->url[0])
|
||||
return NULL;
|
||||
pls->seek_timestamp = AV_NOPTS_VALUE;
|
||||
|
||||
pls->is_id3_timestamped = -1;
|
||||
@ -416,6 +418,10 @@ static struct segment *new_init_section(struct playlist *pls,
|
||||
ptr = info->uri;
|
||||
} else {
|
||||
ff_make_absolute_url(tmp_str, sizeof(tmp_str), url_base, info->uri);
|
||||
if (!tmp_str[0]) {
|
||||
av_free(sec);
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
sec->url = av_strdup(ptr);
|
||||
if (!sec->url) {
|
||||
@ -841,6 +847,11 @@ static int parse_playlist(HLSContext *c, const char *url,
|
||||
|
||||
if (key_type != KEY_NONE) {
|
||||
ff_make_absolute_url(tmp_str, sizeof(tmp_str), url, key);
|
||||
if (!tmp_str[0]) {
|
||||
av_free(cur_init_section);
|
||||
ret = AVERROR_INVALIDDATA;
|
||||
goto fail;
|
||||
}
|
||||
cur_init_section->key = av_strdup(tmp_str);
|
||||
if (!cur_init_section->key) {
|
||||
av_free(cur_init_section);
|
||||
@ -895,6 +906,11 @@ static int parse_playlist(HLSContext *c, const char *url,
|
||||
|
||||
if (key_type != KEY_NONE) {
|
||||
ff_make_absolute_url(tmp_str, sizeof(tmp_str), url, key);
|
||||
if (!tmp_str[0]) {
|
||||
ret = AVERROR_INVALIDDATA;
|
||||
av_free(seg);
|
||||
goto fail;
|
||||
}
|
||||
seg->key = av_strdup(tmp_str);
|
||||
if (!seg->key) {
|
||||
av_free(seg);
|
||||
@ -906,6 +922,13 @@ static int parse_playlist(HLSContext *c, const char *url,
|
||||
}
|
||||
|
||||
ff_make_absolute_url(tmp_str, sizeof(tmp_str), url, line);
|
||||
if (!tmp_str[0]) {
|
||||
ret = AVERROR_INVALIDDATA;
|
||||
if (seg->key)
|
||||
av_free(seg->key);
|
||||
av_free(seg);
|
||||
goto fail;
|
||||
}
|
||||
seg->url = av_strdup(tmp_str);
|
||||
if (!seg->url) {
|
||||
av_free(seg->key);
|
||||
|
Loading…
Reference in New Issue
Block a user