mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-02-10 11:58:16 +00:00
fix gsize=0 / -1 case (if(<24) goto fail) before it is not a good idea
Originally committed as revision 8320 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
e1315fb160
commit
09d9672ad6
@ -167,6 +167,16 @@ static int asf_read_header(AVFormatContext *s, AVFormatParameters *ap)
|
|||||||
print_guid(&g);
|
print_guid(&g);
|
||||||
printf(" size=0x%"PRIx64"\n", gsize);
|
printf(" size=0x%"PRIx64"\n", gsize);
|
||||||
#endif
|
#endif
|
||||||
|
if (!memcmp(&g, &data_header, sizeof(GUID))) {
|
||||||
|
asf->data_object_offset = url_ftell(pb);
|
||||||
|
// if not streaming, gsize is not unlimited (how?), and there is enough space in the file..
|
||||||
|
if (!(asf->hdr.flags & 0x01) && gsize >= 100) {
|
||||||
|
asf->data_object_size = gsize - 24;
|
||||||
|
} else {
|
||||||
|
asf->data_object_size = (uint64_t)-1;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
if (gsize < 24)
|
if (gsize < 24)
|
||||||
goto fail;
|
goto fail;
|
||||||
if (!memcmp(&g, &file_header, sizeof(GUID))) {
|
if (!memcmp(&g, &file_header, sizeof(GUID))) {
|
||||||
@ -327,15 +337,6 @@ static int asf_read_header(AVFormatContext *s, AVFormatParameters *ap)
|
|||||||
}
|
}
|
||||||
pos2 = url_ftell(pb);
|
pos2 = url_ftell(pb);
|
||||||
url_fskip(pb, gsize - (pos2 - pos1 + 24));
|
url_fskip(pb, gsize - (pos2 - pos1 + 24));
|
||||||
} else if (!memcmp(&g, &data_header, sizeof(GUID))) {
|
|
||||||
asf->data_object_offset = url_ftell(pb);
|
|
||||||
// if not streaming, gsize is not unlimited (how?), and there is enough space in the file..
|
|
||||||
if (!(asf->hdr.flags & 0x01) && gsize != (uint64_t)-1 && gsize >= 24) {
|
|
||||||
asf->data_object_size = gsize - 24;
|
|
||||||
} else {
|
|
||||||
asf->data_object_size = (uint64_t)-1;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
} else if (!memcmp(&g, &comment_header, sizeof(GUID))) {
|
} else if (!memcmp(&g, &comment_header, sizeof(GUID))) {
|
||||||
int len1, len2, len3, len4, len5;
|
int len1, len2, len3, len4, len5;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user