On Mon, 25 Dec 2017 21:22:59 -0800 Aman Gupta <ffm...@tmm1.net> wrote:
> From: Aman Gupta <a...@tmm1.net> > > Fixes a segfault when reading a live playlist (without end tag) from non-http > url (like a file on disk). > > Signed-off-by: Aman Gupta <a...@tmm1.net> > --- > libavformat/hls.c | 5 +++-- > 1 file changed, 3 insertions(+), 2 deletions(-) > > diff --git a/libavformat/hls.c b/libavformat/hls.c > index 73bf55b791..c30d71a477 100644 > --- a/libavformat/hls.c > +++ b/libavformat/hls.c > @@ -724,8 +724,9 @@ static int parse_playlist(HLSContext *c, const char *url, > struct variant_info variant_info; > char tmp_str[MAX_URL_SIZE]; > struct segment *cur_init_section = NULL; > + int is_http = av_strstart(url, "http", NULL); There got to be a better way to check whether the protocol implementation is one which works with the http persistent functions. I can only repeat my suggestion that this should be integrated into URLContext. > - if (!in && c->http_persistent && c->playlist_pb) { > + if (!in && is_http && c->http_persistent && c->playlist_pb) { > in = c->playlist_pb; > ret = open_url_keepalive(c->ctx, &c->playlist_pb, url); > if (ret == AVERROR_EXIT) { > @@ -759,7 +760,7 @@ static int parse_playlist(HLSContext *c, const char *url, > if (ret < 0) > return ret; > > - if (c->http_persistent) > + if (c->http_persistent && is_http) > c->playlist_pb = in; > else > close_in = 1; _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel