Mercurial > hg > nginx
view auto/lib/conf @ 9322:d6f75dd66761 default tip
Mp4: added and updated sanity checks for "end" handling.
When handling incorrect data in ngx_http_mp4_crop_stsc_data(),
trak->end_chunk_samples might end up being arbitrary large, leading
to reading before the buffer in ngx_http_mp4_update_stsz_atom(). Fix
is to check that trak->end_chunk_samples corresponds to a memory within
the stsz atom data. For consistency, trak->start_chunk_samples
is checked similarly.
Similarly, trak->end_chunk might end up being smaller than trak->start_chunk,
leading to reading memory after the buffer in ngx_http_mp4_update_stco_atom()
and ngx_http_mp4_update_co64_atom(). Corresponding checks are updated
to explicitly test (trak->end_chunk - trak->start_chunk) instead of just
checking trak->end_chunk and assuming it is larger than trak->start_chunk.
This is generally in line with existing checks of
(trak->end_sample - trak->start_sample) in ngx_http_mp4_update_stsz_atom(),
where trak->end_sample might also become smaller than trak->start_sample
when handling incorrect data in ngx_http_mp4_crop_stts_data().
author | Maxim Dounin <mdounin@mdounin.ru> |
---|---|
date | Sun, 25 Aug 2024 06:35:40 +0300 |
parents | cc7ff76df927 |
children |
line wrap: on
line source
# Copyright (C) Igor Sysoev # Copyright (C) Nginx, Inc. if [ $USE_PCRE = YES -o $PCRE != NONE ]; then . auto/lib/pcre/conf else if [ $USE_PCRE = DISABLED -a $HTTP = YES -a $HTTP_REWRITE = YES ]; then cat << END $0: error: the HTTP rewrite module requires the PCRE library. You can either disable the module by using --without-http_rewrite_module option or you have to enable the PCRE support. END exit 1 fi fi if [ $USE_OPENSSL = YES ]; then . auto/lib/openssl/conf fi if [ $USE_ZLIB = YES ]; then . auto/lib/zlib/conf fi if [ $USE_LIBXSLT != NO ]; then . auto/lib/libxslt/conf fi if [ $USE_LIBGD != NO ]; then . auto/lib/libgd/conf fi if [ $USE_PERL != NO ]; then . auto/lib/perl/conf fi if [ $USE_GEOIP != NO ]; then . auto/lib/geoip/conf fi if [ $NGX_GOOGLE_PERFTOOLS = YES ]; then . auto/lib/google-perftools/conf fi if [ $NGX_LIBATOMIC != NO ]; then . auto/lib/libatomic/conf fi