diff options
author | Steven Liu <liuqi05@kuaishou.com> | 2021-01-18 14:22:07 +0800 |
---|---|---|
committer | Steven Liu <liuqi05@kuaishou.com> | 2021-02-04 10:30:32 +0800 |
commit | 756897eff4950ad0c969b891d7c4af5df0406c25 (patch) | |
tree | 9c159ef8eef62e76a8d247aa316daffbaadd8649 /libavformat | |
parent | a8b3a51790bf5bcc498844e1cd6f0097ecb455c1 (diff) |
avformat/dashdec: check init_section before use it.
because there have no Initialization in SegmentTemplate,
so it will have no init_section for init segment file.
but in the is_common_init_section_exist function it will be used for
check to url, url_offset and size, so check init_section
before use init_section.
And fix code style in is_common_init_section_exist,
make the code block short when it too long.
fix ticket: 9062
Signed-off-by: liuqi05 <liuqi05@kuaishou.com>
Diffstat (limited to 'libavformat')
-rw-r--r-- | libavformat/dashdec.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/libavformat/dashdec.c b/libavformat/dashdec.c index 693fc7372b..9262e9c0a4 100644 --- a/libavformat/dashdec.c +++ b/libavformat/dashdec.c @@ -1992,7 +1992,12 @@ static int is_common_init_section_exist(struct representation **pls, int n_pls) url_offset = first_init_section->url_offset; size = pls[0]->init_section->size; for (i=0;i<n_pls;i++) { - if (av_strcasecmp(pls[i]->init_section->url,url) || pls[i]->init_section->url_offset != url_offset || pls[i]->init_section->size != size) { + if (!pls[i]->init_section) + continue; + + if (av_strcasecmp(pls[i]->init_section->url, url) || + pls[i]->init_section->url_offset != url_offset || + pls[i]->init_section->size != size) { return 0; } } |