mirror of
https://github.com/nginx/nginx.git
synced 2024-12-01 03:17:17 +08:00
Mp4: fixed reading 64-bit atoms.
Previously there was no validation for the size of a 64-bit atom in an mp4 file. This could lead to a CPU hog when the size is 0, or various other problems due to integer underflow when calculating atom data size, including segmentation fault or worker process memory disclosure.
This commit is contained in:
parent
b66ee453cc
commit
9cd9526ba6
@ -942,6 +942,13 @@ ngx_http_mp4_read_atom(ngx_http_mp4_file_t *mp4,
|
||||
atom_size = ngx_mp4_get_64value(atom_header + 8);
|
||||
atom_header_size = sizeof(ngx_mp4_atom_header64_t);
|
||||
|
||||
if (atom_size < sizeof(ngx_mp4_atom_header64_t)) {
|
||||
ngx_log_error(NGX_LOG_ERR, mp4->file.log, 0,
|
||||
"\"%s\" mp4 atom is too small:%uL",
|
||||
mp4->file.name.data, atom_size);
|
||||
return NGX_ERROR;
|
||||
}
|
||||
|
||||
} else {
|
||||
ngx_log_error(NGX_LOG_ERR, mp4->file.log, 0,
|
||||
"\"%s\" mp4 atom is too small:%uL",
|
||||
|
Loading…
Reference in New Issue
Block a user