mirror of
https://github.com/nginx/nginx.git
synced 2024-11-28 08:09:00 +08:00
Mp4: fixed setting wrong mdat atom size in very rare cases.
Atom size is the sum of atom header size and atom data size. The specification says that the first 4 bytes are set to one when the atom size is greater than the maximum unsigned 32-bit value. Which means atom header size should be considered when the comparison takes place between atom data size and 0xffffffff.
This commit is contained in:
parent
551091951a
commit
8b8b6f41e6
@ -1229,7 +1229,9 @@ ngx_http_mp4_update_mdat_atom(ngx_http_mp4_file_t *mp4, off_t start_offset,
|
||||
|
||||
atom_header = mp4->mdat_atom_header;
|
||||
|
||||
if ((uint64_t) atom_data_size > (uint64_t) 0xffffffff) {
|
||||
if ((uint64_t) atom_data_size
|
||||
> (uint64_t) 0xffffffff - sizeof(ngx_mp4_atom_header_t))
|
||||
{
|
||||
atom_size = 1;
|
||||
atom_header_size = sizeof(ngx_mp4_atom_header64_t);
|
||||
ngx_mp4_set_64value(atom_header + sizeof(ngx_mp4_atom_header_t),
|
||||
|
Loading…
Reference in New Issue
Block a user