]> git.sesse.net Git - ffmpeg/commitdiff
avformat/dashdec: check init_section before use it.
authorSteven Liu <liuqi05@kuaishou.com>
Mon, 18 Jan 2021 06:22:07 +0000 (14:22 +0800)
committerSteven Liu <liuqi05@kuaishou.com>
Thu, 4 Feb 2021 02:30:32 +0000 (10:30 +0800)
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>
libavformat/dashdec.c

index 693fc7372be5273af347585d2930e1e185591282..9262e9c0a4afd91597e58b3333c01de7a8132a47 100644 (file)
@@ -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;
         }
     }