]> git.kaiwu.me - nginx.git/commit
Mp4: validate sync sample values in stss atom.
authorCodeByMoriarty <czyrabriones4@gmail.com>
Mon, 23 Feb 2026 00:45:47 +0000 (16:45 -0800)
committerRoman Arutyunyan <arutyunyan.roman@gmail.com>
Mon, 23 Feb 2026 10:10:53 +0000 (14:10 +0400)
commitbb8ec295ab59451c19c0ae0c66882b4f84ff4ef7
tree6416978c1f5ce152ce5a0f3e3f0ca88aaefbba28
parentec714d52bd4914d52a113234c16e1855d9ac7dcf
Mp4: validate sync sample values in stss atom.

Per ISO 14496-12 Section 8.6.2, sync sample numbers must be 1-based.
A zero-valued stss entry caused ngx_http_mp4_seek_key_frame() to
return a key_prefix exceeding the samples consumed in the forward
stts pass, which led the backward loop in ngx_http_mp4_crop_stts_data()
to walk past the beginning of the stts data buffer.

The fix validates each stss entry in ngx_http_mp4_seek_key_frame()
and returns an error if a zero sync sample is encountered.  The
function signature is changed to return ngx_int_t so it can signal
errors to the caller.
src/http/modules/ngx_http_mp4_module.c