mirror of
https://github.com/MiyooCFW/buildroot.git
synced 2025-09-27 22:24:19 +03:00
bump version to 2022.02.9
add miyoo_defconfig
This commit is contained in:
@@ -15,14 +15,16 @@ Signed-off-by: Samuel Martin <s.martin49@gmail.com>
|
||||
Refresh for 1.8.0.
|
||||
|
||||
Signed-off-by: Danomi Manchego <danomimanchego123@gmail.com>
|
||||
[rebased against v1.20.1]
|
||||
Signed-off-by: Adam Duskett <Aduskett@gmail.com>
|
||||
---
|
||||
auto/cc/conf | 3 +++
|
||||
auto/cc/name | 1 +
|
||||
auto/lib/libatomic/conf | 1 +
|
||||
auto/os/darwin | 3 +++
|
||||
auto/os/linux | 4 ++++
|
||||
auto/unix | 8 ++++++++
|
||||
6 files changed, 20 insertions(+)
|
||||
auto/unix | 7 +++++++
|
||||
6 files changed, 19 insertions(+)
|
||||
|
||||
diff --git a/auto/cc/conf b/auto/cc/conf
|
||||
index afbca62b..ad42c800 100644
|
||||
@@ -116,7 +118,7 @@ index 2c8a9bb8..eb4513ee 100644
|
||||
ngx_feature_incs="#include <sys/epoll.h>"
|
||||
ngx_feature_path=
|
||||
ngx_feature_libs=
|
||||
@@ -111,6 +112,7 @@ CC_AUX_FLAGS="$cc_aux_flags -D_GNU_SOURCE"
|
||||
@@ -136,6 +137,7 @@ CC_AUX_FLAGS="$cc_aux_flags -D_GNU_SOURCE"
|
||||
ngx_feature="sendfile()"
|
||||
ngx_feature_name="NGX_HAVE_SENDFILE"
|
||||
ngx_feature_run=yes
|
||||
@@ -124,7 +126,7 @@ index 2c8a9bb8..eb4513ee 100644
|
||||
ngx_feature_incs="#include <sys/sendfile.h>
|
||||
#include <errno.h>"
|
||||
ngx_feature_path=
|
||||
@@ -132,6 +134,7 @@ CC_AUX_FLAGS="$cc_aux_flags -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64"
|
||||
@@ -157,6 +159,7 @@ CC_AUX_FLAGS="$cc_aux_flags -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64"
|
||||
ngx_feature="sendfile64()"
|
||||
ngx_feature_name="NGX_HAVE_SENDFILE64"
|
||||
ngx_feature_run=yes
|
||||
@@ -132,7 +134,7 @@ index 2c8a9bb8..eb4513ee 100644
|
||||
ngx_feature_incs="#include <sys/sendfile.h>
|
||||
#include <errno.h>"
|
||||
ngx_feature_path=
|
||||
@@ -150,6 +153,7 @@ ngx_include="sys/prctl.h"; . auto/include
|
||||
@@ -175,6 +178,7 @@ ngx_include="sys/prctl.h"; . auto/include
|
||||
ngx_feature="prctl(PR_SET_DUMPABLE)"
|
||||
ngx_feature_name="NGX_HAVE_PR_SET_DUMPABLE"
|
||||
ngx_feature_run=yes
|
||||
@@ -152,15 +154,15 @@ index 43d3b25a..3da00537 100644
|
||||
ngx_feature_incs="#include <sys/event.h>
|
||||
#include <sys/time.h>"
|
||||
ngx_feature_path=
|
||||
@@ -730,6 +731,7 @@ ngx_feature_test="char buf[1]; struct iovec vec[1]; ssize_t n;
|
||||
ngx_feature="sys_nerr"
|
||||
ngx_feature_name="NGX_SYS_NERR"
|
||||
ngx_feature_run=value
|
||||
+ngx_feature_run_force_result="$ngx_force_sys_nerr"
|
||||
ngx_feature_incs='#include <errno.h>
|
||||
#include <stdio.h>'
|
||||
ngx_feature_path=
|
||||
@@ -744,6 +746,7 @@ if [ $ngx_found = no ]; then
|
||||
@@ -722,6 +723,7 @@ if [ $ngx_found = no ]; then
|
||||
ngx_feature="sys_nerr"
|
||||
ngx_feature_name="NGX_SYS_NERR"
|
||||
ngx_feature_run=value
|
||||
+ ngx_feature_run_force_result="$ngx_force_sys_nerr"
|
||||
ngx_feature_incs='#include <errno.h>
|
||||
#include <stdio.h>'
|
||||
ngx_feature_path=
|
||||
@@ -737,6 +739,7 @@ if [ $ngx_found = no ]; then
|
||||
ngx_feature="_sys_nerr"
|
||||
ngx_feature_name="NGX_SYS_NERR"
|
||||
ngx_feature_run=value
|
||||
@@ -168,15 +170,7 @@ index 43d3b25a..3da00537 100644
|
||||
ngx_feature_incs='#include <errno.h>
|
||||
#include <stdio.h>'
|
||||
ngx_feature_path=
|
||||
@@ -759,6 +762,7 @@ if [ $ngx_found = no ]; then
|
||||
ngx_feature='maximum errno'
|
||||
ngx_feature_name=NGX_SYS_NERR
|
||||
ngx_feature_run=value
|
||||
+ ngx_feature_run_force_result="$ngx_force_sys_nerr"
|
||||
ngx_feature_incs='#include <errno.h>
|
||||
#include <string.h>
|
||||
#include <stdio.h>'
|
||||
@@ -841,6 +845,7 @@ ngx_feature_test="void *p; p = memalign(4096, 4096);
|
||||
@@ -806,6 +809,7 @@ ngx_feature_test="void *p; p = memalign(4096, 4096);
|
||||
ngx_feature="mmap(MAP_ANON|MAP_SHARED)"
|
||||
ngx_feature_name="NGX_HAVE_MAP_ANON"
|
||||
ngx_feature_run=yes
|
||||
@@ -184,7 +178,7 @@ index 43d3b25a..3da00537 100644
|
||||
ngx_feature_incs="#include <sys/mman.h>"
|
||||
ngx_feature_path=
|
||||
ngx_feature_libs=
|
||||
@@ -854,6 +859,7 @@ ngx_feature_test="void *p;
|
||||
@@ -819,6 +823,7 @@ ngx_feature_test="void *p;
|
||||
ngx_feature='mmap("/dev/zero", MAP_SHARED)'
|
||||
ngx_feature_name="NGX_HAVE_MAP_DEVZERO"
|
||||
ngx_feature_run=yes
|
||||
@@ -192,7 +186,7 @@ index 43d3b25a..3da00537 100644
|
||||
ngx_feature_incs="#include <sys/mman.h>
|
||||
#include <sys/stat.h>
|
||||
#include <fcntl.h>"
|
||||
@@ -869,6 +875,7 @@ ngx_feature_test='void *p; int fd;
|
||||
@@ -834,6 +839,7 @@ ngx_feature_test='void *p; int fd;
|
||||
ngx_feature="System V shared memory"
|
||||
ngx_feature_name="NGX_HAVE_SYSVSHM"
|
||||
ngx_feature_run=yes
|
||||
@@ -200,7 +194,7 @@ index 43d3b25a..3da00537 100644
|
||||
ngx_feature_incs="#include <sys/ipc.h>
|
||||
#include <sys/shm.h>"
|
||||
ngx_feature_path=
|
||||
@@ -883,6 +890,7 @@ ngx_feature_test="int id;
|
||||
@@ -848,6 +854,7 @@ ngx_feature_test="int id;
|
||||
ngx_feature="POSIX semaphores"
|
||||
ngx_feature_name="NGX_HAVE_POSIX_SEM"
|
||||
ngx_feature_run=yes
|
||||
|
||||
@@ -15,10 +15,12 @@ Signed-off-by: Samuel Martin <s.martin49@gmail.com>
|
||||
Refresh for 1.8.0.
|
||||
|
||||
Signed-off-by: Danomi Manchego <danomimanchego123@gmail.com>
|
||||
[rebased against v1.20.1]
|
||||
Signed-off-by: Adam Duskett <Aduskett@gmail.com>
|
||||
---
|
||||
auto/os/sys_nerr | 78 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
auto/unix | 10 ++++++++
|
||||
2 files changed, 88 insertions(+)
|
||||
auto/os/sys_nerr | 78 ++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
auto/unix | 8 +++++
|
||||
2 files changed, 86 insertions(+)
|
||||
create mode 100644 auto/os/sys_nerr
|
||||
|
||||
diff --git a/auto/os/sys_nerr b/auto/os/sys_nerr
|
||||
@@ -109,18 +111,13 @@ diff --git a/auto/unix b/auto/unix
|
||||
index 7dbf9d1..00a7370 100755
|
||||
--- a/auto/unix
|
||||
+++ b/auto/unix
|
||||
@@ -736,6 +736,10 @@ ngx_feature_incs='#include <errno.h>
|
||||
#include <stdio.h>'
|
||||
ngx_feature_path=
|
||||
ngx_feature_libs=
|
||||
+
|
||||
+if false ; then
|
||||
+# Disabled because only valid for native build.
|
||||
+
|
||||
ngx_feature_test='printf("%d", sys_nerr);'
|
||||
. auto/feature
|
||||
|
||||
@@ -784,6 +788,12 @@ if [ $ngx_found = no ]; then
|
||||
@@ -744,10 +744,18 @@ if [ $ngx_found = no ]; then
|
||||
#include <stdio.h>'
|
||||
ngx_feature_path=
|
||||
ngx_feature_libs=
|
||||
+ if false ; then
|
||||
+ # Disabled because only valid for native build.
|
||||
ngx_feature_test='printf("%d", _sys_nerr);'
|
||||
. auto/feature
|
||||
fi
|
||||
|
||||
|
||||
@@ -0,0 +1,38 @@
|
||||
From 79f1fe5251afc4e22a138b0c8f44fc9c94093b8b Mon Sep 17 00:00:00 2001
|
||||
From: Fabrice Fontaine <fontaine.fabrice@gmail.com>
|
||||
Date: Fri, 2 Apr 2021 09:18:26 +0200
|
||||
Subject: [PATCH] auto/os/linux: fix build with libxcrypt
|
||||
|
||||
If crypt_r is found in libcrypt, add -lcrypt to CORE_LIBS to avoid the
|
||||
following build failure with libxcrypt:
|
||||
|
||||
objs/ngx_modules.o \
|
||||
-lpcre -L/home/giuliobenetti/autobuild/run/instance-3/output-1/host/bin/../xtensa-buildroot-linux-uclibc/sysroot/usr/lib -lssl -lcrypto -L/home/giuliobenetti/autobuild/run/instance-3/output-1/host/bin/../xtensa-buildroot-linux-uclibc/sysroot/usr/lib -lxslt -lxml2 -lGeoIP \
|
||||
-Wl,-E
|
||||
/home/giuliobenetti/autobuild/run/instance-3/output-1/host/lib/gcc/xtensa-buildroot-linux-uclibc/9.3.0/../../../../xtensa-buildroot-linux-uclibc/bin/ld: objs/src/os/unix/ngx_user.o:/home/giuliobenetti/autobuild/run/instance-3/output-1/build/nginx-1.18.0/src/os/unix/ngx_user.c:18: undefined reference to `crypt_r'
|
||||
|
||||
Fixes:
|
||||
- http://autobuild.buildroot.org/results/79a51b0d348e756517b5c9ce815a67f5c657e7e6
|
||||
|
||||
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
|
||||
---
|
||||
auto/os/linux | 3 +++
|
||||
1 file changed, 3 insertions(+)
|
||||
|
||||
diff --git a/auto/os/linux b/auto/os/linux
|
||||
index 5e280eca..04682812 100644
|
||||
--- a/auto/os/linux
|
||||
+++ b/auto/os/linux
|
||||
@@ -232,6 +232,9 @@ ngx_feature_test="struct crypt_data cd;
|
||||
crypt_r(\"key\", \"salt\", &cd);"
|
||||
. auto/feature
|
||||
|
||||
+if [ $ngx_found = yes ]; then
|
||||
+ CORE_LIBS="$CORE_LIBS $ngx_feature_libs"
|
||||
+fi
|
||||
|
||||
ngx_include="sys/vfs.h"; . auto/include
|
||||
|
||||
--
|
||||
2.30.2
|
||||
|
||||
@@ -0,0 +1,118 @@
|
||||
From 4bd8fe780ff2064f2d4e9c905d8a98dd0f9b6191 Mon Sep 17 00:00:00 2001
|
||||
From: Nevo Hed <nhed+buildroot@starry.com>
|
||||
Date: Mon, 30 Aug 2021 13:28:13 -0400
|
||||
Subject: [PATCH] Allow forcing of endianness for cross-compilation
|
||||
|
||||
Upstream-status: Invalid (upstream doesn't support cross-compilation)
|
||||
See https://trac.nginx.org/nginx/ticket/2240
|
||||
|
||||
Signed-off-by: Nevo Hed <nhed+buildroot@starry.com>
|
||||
---
|
||||
auto/endianness | 61 ++++++++++++++++++++++++++++++++-----------------
|
||||
auto/options | 6 +++++
|
||||
2 files changed, 46 insertions(+), 21 deletions(-)
|
||||
|
||||
diff --git a/auto/endianness b/auto/endianness
|
||||
index 1b552b6b..4b2a3cd7 100644
|
||||
--- a/auto/endianness
|
||||
+++ b/auto/endianness
|
||||
@@ -26,25 +26,44 @@ int main(void) {
|
||||
|
||||
END
|
||||
|
||||
-ngx_test="$CC $CC_TEST_FLAGS $CC_AUX_FLAGS \
|
||||
- -o $NGX_AUTOTEST $NGX_AUTOTEST.c $NGX_LD_OPT $ngx_feature_libs"
|
||||
-
|
||||
-eval "$ngx_test >> $NGX_AUTOCONF_ERR 2>&1"
|
||||
-
|
||||
-if [ -x $NGX_AUTOTEST ]; then
|
||||
- if $NGX_AUTOTEST >/dev/null 2>&1; then
|
||||
- echo " little endian"
|
||||
+case "${NGX_FORCE_ENDIANNESS}" in
|
||||
+ little)
|
||||
+ echo " little endian (forced)"
|
||||
have=NGX_HAVE_LITTLE_ENDIAN . auto/have
|
||||
- else
|
||||
- echo " big endian"
|
||||
- fi
|
||||
-
|
||||
- rm -rf $NGX_AUTOTEST*
|
||||
-
|
||||
-else
|
||||
- rm -rf $NGX_AUTOTEST*
|
||||
-
|
||||
- echo
|
||||
- echo "$0: error: cannot detect system byte ordering"
|
||||
- exit 1
|
||||
-fi
|
||||
+ ;;
|
||||
+
|
||||
+ big)
|
||||
+ echo " big endian (forced)"
|
||||
+ ;;
|
||||
+
|
||||
+ "")
|
||||
+ ngx_test="$CC $CC_TEST_FLAGS $CC_AUX_FLAGS \
|
||||
+ -o $NGX_AUTOTEST $NGX_AUTOTEST.c $NGX_LD_OPT $ngx_feature_libs"
|
||||
+
|
||||
+ eval "$ngx_test >> $NGX_AUTOCONF_ERR 2>&1"
|
||||
+
|
||||
+ if [ -x $NGX_AUTOTEST ]; then
|
||||
+ if $NGX_AUTOTEST >/dev/null 2>&1; then
|
||||
+ echo " little endian"
|
||||
+ have=NGX_HAVE_LITTLE_ENDIAN . auto/have
|
||||
+ else
|
||||
+ echo " big endian"
|
||||
+ fi
|
||||
+
|
||||
+ rm -rf $NGX_AUTOTEST*
|
||||
+
|
||||
+ else
|
||||
+ rm -rf $NGX_AUTOTEST*
|
||||
+
|
||||
+ echo
|
||||
+ echo "$0: error: cannot detect system byte ordering"
|
||||
+ exit 1
|
||||
+ fi
|
||||
+ ;;
|
||||
+
|
||||
+ *)
|
||||
+ echo
|
||||
+ echo "$0: error: invalid \"--force-endianness=${NGX_FORCE_ENDIANNESS}\""
|
||||
+ exit 1
|
||||
+ ;;
|
||||
+esac
|
||||
diff --git a/auto/options b/auto/options
|
||||
index 80be906e..85a06456 100644
|
||||
--- a/auto/options
|
||||
+++ b/auto/options
|
||||
@@ -17,6 +17,8 @@ NGX_USER=
|
||||
NGX_GROUP=
|
||||
NGX_BUILD=
|
||||
|
||||
+NGX_FORCE_ENDIANNESS=
|
||||
+
|
||||
CC=${CC:-cc}
|
||||
CPP=
|
||||
NGX_OBJS=objs
|
||||
@@ -196,6 +198,8 @@ do
|
||||
--user=*) NGX_USER="$value" ;;
|
||||
--group=*) NGX_GROUP="$value" ;;
|
||||
|
||||
+ --force-endianness=*) NGX_FORCE_ENDIANNESS="$value" ;;
|
||||
+
|
||||
--crossbuild=*) NGX_PLATFORM="$value" ;;
|
||||
|
||||
--build=*) NGX_BUILD="$value" ;;
|
||||
@@ -432,6 +436,8 @@ cat << END
|
||||
--build=NAME set build name
|
||||
--builddir=DIR set build directory
|
||||
|
||||
+ --force-endianness=<big>|<little> force endianness
|
||||
+
|
||||
--with-select_module enable select module
|
||||
--without-select_module disable select module
|
||||
--with-poll_module enable poll module
|
||||
--
|
||||
2.31.1
|
||||
|
||||
315
package/nginx/0011-Mp4-disabled-duplicate-atoms.patch
Normal file
315
package/nginx/0011-Mp4-disabled-duplicate-atoms.patch
Normal file
@@ -0,0 +1,315 @@
|
||||
From 6b022a5556af22b6e18532e547a6ae46b0d8c6ea Mon Sep 17 00:00:00 2001
|
||||
From: Roman Arutyunyan <arut@nginx.com>
|
||||
Date: Wed, 19 Oct 2022 10:53:17 +0300
|
||||
Subject: [PATCH] Mp4: disabled duplicate atoms.
|
||||
|
||||
Most atoms should not appear more than once in a container. Previously,
|
||||
this was not enforced by the module, which could result in worker process
|
||||
crash, memory corruption and disclosure.
|
||||
|
||||
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
|
||||
---
|
||||
src/http/modules/ngx_http_mp4_module.c | 147 +++++++++++++++++++++++++
|
||||
1 file changed, 147 insertions(+)
|
||||
|
||||
diff --git a/src/http/modules/ngx_http_mp4_module.c b/src/http/modules/ngx_http_mp4_module.c
|
||||
index 9c3f627f..4eff01e9 100644
|
||||
--- a/src/http/modules/ngx_http_mp4_module.c
|
||||
+++ b/src/http/modules/ngx_http_mp4_module.c
|
||||
@@ -1121,6 +1121,12 @@ ngx_http_mp4_read_ftyp_atom(ngx_http_mp4_file_t *mp4, uint64_t atom_data_size)
|
||||
return NGX_ERROR;
|
||||
}
|
||||
|
||||
+ if (mp4->ftyp_atom.buf) {
|
||||
+ ngx_log_error(NGX_LOG_ERR, mp4->file.log, 0,
|
||||
+ "duplicate mp4 ftyp atom in \"%s\"", mp4->file.name.data);
|
||||
+ return NGX_ERROR;
|
||||
+ }
|
||||
+
|
||||
atom_size = sizeof(ngx_mp4_atom_header_t) + (size_t) atom_data_size;
|
||||
|
||||
ftyp_atom = ngx_palloc(mp4->request->pool, atom_size);
|
||||
@@ -1179,6 +1185,12 @@ ngx_http_mp4_read_moov_atom(ngx_http_mp4_file_t *mp4, uint64_t atom_data_size)
|
||||
return NGX_DECLINED;
|
||||
}
|
||||
|
||||
+ if (mp4->moov_atom.buf) {
|
||||
+ ngx_log_error(NGX_LOG_ERR, mp4->file.log, 0,
|
||||
+ "duplicate mp4 moov atom in \"%s\"", mp4->file.name.data);
|
||||
+ return NGX_ERROR;
|
||||
+ }
|
||||
+
|
||||
conf = ngx_http_get_module_loc_conf(mp4->request, ngx_http_mp4_module);
|
||||
|
||||
if (atom_data_size > mp4->buffer_size) {
|
||||
@@ -1246,6 +1258,12 @@ ngx_http_mp4_read_mdat_atom(ngx_http_mp4_file_t *mp4, uint64_t atom_data_size)
|
||||
|
||||
ngx_log_debug0(NGX_LOG_DEBUG_HTTP, mp4->file.log, 0, "mp4 mdat atom");
|
||||
|
||||
+ if (mp4->mdat_atom.buf) {
|
||||
+ ngx_log_error(NGX_LOG_ERR, mp4->file.log, 0,
|
||||
+ "duplicate mp4 mdat atom in \"%s\"", mp4->file.name.data);
|
||||
+ return NGX_ERROR;
|
||||
+ }
|
||||
+
|
||||
data = &mp4->mdat_data_buf;
|
||||
data->file = &mp4->file;
|
||||
data->in_file = 1;
|
||||
@@ -1372,6 +1390,12 @@ ngx_http_mp4_read_mvhd_atom(ngx_http_mp4_file_t *mp4, uint64_t atom_data_size)
|
||||
|
||||
ngx_log_debug0(NGX_LOG_DEBUG_HTTP, mp4->file.log, 0, "mp4 mvhd atom");
|
||||
|
||||
+ if (mp4->mvhd_atom.buf) {
|
||||
+ ngx_log_error(NGX_LOG_ERR, mp4->file.log, 0,
|
||||
+ "duplicate mp4 mvhd atom in \"%s\"", mp4->file.name.data);
|
||||
+ return NGX_ERROR;
|
||||
+ }
|
||||
+
|
||||
atom_header = ngx_mp4_atom_header(mp4);
|
||||
mvhd_atom = (ngx_mp4_mvhd_atom_t *) atom_header;
|
||||
mvhd64_atom = (ngx_mp4_mvhd64_atom_t *) atom_header;
|
||||
@@ -1637,6 +1661,13 @@ ngx_http_mp4_read_tkhd_atom(ngx_http_mp4_file_t *mp4, uint64_t atom_data_size)
|
||||
atom_size = sizeof(ngx_mp4_atom_header_t) + (size_t) atom_data_size;
|
||||
|
||||
trak = ngx_mp4_last_trak(mp4);
|
||||
+
|
||||
+ if (trak->out[NGX_HTTP_MP4_TKHD_ATOM].buf) {
|
||||
+ ngx_log_error(NGX_LOG_ERR, mp4->file.log, 0,
|
||||
+ "duplicate mp4 tkhd atom in \"%s\"", mp4->file.name.data);
|
||||
+ return NGX_ERROR;
|
||||
+ }
|
||||
+
|
||||
trak->tkhd_size = atom_size;
|
||||
trak->movie_duration = duration;
|
||||
|
||||
@@ -1676,6 +1707,12 @@ ngx_http_mp4_read_mdia_atom(ngx_http_mp4_file_t *mp4, uint64_t atom_data_size)
|
||||
|
||||
trak = ngx_mp4_last_trak(mp4);
|
||||
|
||||
+ if (trak->out[NGX_HTTP_MP4_MDIA_ATOM].buf) {
|
||||
+ ngx_log_error(NGX_LOG_ERR, mp4->file.log, 0,
|
||||
+ "duplicate mp4 mdia atom in \"%s\"", mp4->file.name.data);
|
||||
+ return NGX_ERROR;
|
||||
+ }
|
||||
+
|
||||
atom = &trak->mdia_atom_buf;
|
||||
atom->temporary = 1;
|
||||
atom->pos = atom_header;
|
||||
@@ -1799,6 +1836,13 @@ ngx_http_mp4_read_mdhd_atom(ngx_http_mp4_file_t *mp4, uint64_t atom_data_size)
|
||||
atom_size = sizeof(ngx_mp4_atom_header_t) + (size_t) atom_data_size;
|
||||
|
||||
trak = ngx_mp4_last_trak(mp4);
|
||||
+
|
||||
+ if (trak->out[NGX_HTTP_MP4_MDHD_ATOM].buf) {
|
||||
+ ngx_log_error(NGX_LOG_ERR, mp4->file.log, 0,
|
||||
+ "duplicate mp4 mdhd atom in \"%s\"", mp4->file.name.data);
|
||||
+ return NGX_ERROR;
|
||||
+ }
|
||||
+
|
||||
trak->mdhd_size = atom_size;
|
||||
trak->timescale = timescale;
|
||||
trak->duration = duration;
|
||||
@@ -1862,6 +1906,12 @@ ngx_http_mp4_read_hdlr_atom(ngx_http_mp4_file_t *mp4, uint64_t atom_data_size)
|
||||
|
||||
trak = ngx_mp4_last_trak(mp4);
|
||||
|
||||
+ if (trak->out[NGX_HTTP_MP4_HDLR_ATOM].buf) {
|
||||
+ ngx_log_error(NGX_LOG_ERR, mp4->file.log, 0,
|
||||
+ "duplicate mp4 hdlr atom in \"%s\"", mp4->file.name.data);
|
||||
+ return NGX_ERROR;
|
||||
+ }
|
||||
+
|
||||
atom = &trak->hdlr_atom_buf;
|
||||
atom->temporary = 1;
|
||||
atom->pos = atom_header;
|
||||
@@ -1890,6 +1940,12 @@ ngx_http_mp4_read_minf_atom(ngx_http_mp4_file_t *mp4, uint64_t atom_data_size)
|
||||
|
||||
trak = ngx_mp4_last_trak(mp4);
|
||||
|
||||
+ if (trak->out[NGX_HTTP_MP4_MINF_ATOM].buf) {
|
||||
+ ngx_log_error(NGX_LOG_ERR, mp4->file.log, 0,
|
||||
+ "duplicate mp4 minf atom in \"%s\"", mp4->file.name.data);
|
||||
+ return NGX_ERROR;
|
||||
+ }
|
||||
+
|
||||
atom = &trak->minf_atom_buf;
|
||||
atom->temporary = 1;
|
||||
atom->pos = atom_header;
|
||||
@@ -1933,6 +1989,15 @@ ngx_http_mp4_read_vmhd_atom(ngx_http_mp4_file_t *mp4, uint64_t atom_data_size)
|
||||
|
||||
trak = ngx_mp4_last_trak(mp4);
|
||||
|
||||
+ if (trak->out[NGX_HTTP_MP4_VMHD_ATOM].buf
|
||||
+ || trak->out[NGX_HTTP_MP4_SMHD_ATOM].buf)
|
||||
+ {
|
||||
+ ngx_log_error(NGX_LOG_ERR, mp4->file.log, 0,
|
||||
+ "duplicate mp4 vmhd/smhd atom in \"%s\"",
|
||||
+ mp4->file.name.data);
|
||||
+ return NGX_ERROR;
|
||||
+ }
|
||||
+
|
||||
atom = &trak->vmhd_atom_buf;
|
||||
atom->temporary = 1;
|
||||
atom->pos = atom_header;
|
||||
@@ -1964,6 +2029,15 @@ ngx_http_mp4_read_smhd_atom(ngx_http_mp4_file_t *mp4, uint64_t atom_data_size)
|
||||
|
||||
trak = ngx_mp4_last_trak(mp4);
|
||||
|
||||
+ if (trak->out[NGX_HTTP_MP4_VMHD_ATOM].buf
|
||||
+ || trak->out[NGX_HTTP_MP4_SMHD_ATOM].buf)
|
||||
+ {
|
||||
+ ngx_log_error(NGX_LOG_ERR, mp4->file.log, 0,
|
||||
+ "duplicate mp4 vmhd/smhd atom in \"%s\"",
|
||||
+ mp4->file.name.data);
|
||||
+ return NGX_ERROR;
|
||||
+ }
|
||||
+
|
||||
atom = &trak->smhd_atom_buf;
|
||||
atom->temporary = 1;
|
||||
atom->pos = atom_header;
|
||||
@@ -1995,6 +2069,12 @@ ngx_http_mp4_read_dinf_atom(ngx_http_mp4_file_t *mp4, uint64_t atom_data_size)
|
||||
|
||||
trak = ngx_mp4_last_trak(mp4);
|
||||
|
||||
+ if (trak->out[NGX_HTTP_MP4_DINF_ATOM].buf) {
|
||||
+ ngx_log_error(NGX_LOG_ERR, mp4->file.log, 0,
|
||||
+ "duplicate mp4 dinf atom in \"%s\"", mp4->file.name.data);
|
||||
+ return NGX_ERROR;
|
||||
+ }
|
||||
+
|
||||
atom = &trak->dinf_atom_buf;
|
||||
atom->temporary = 1;
|
||||
atom->pos = atom_header;
|
||||
@@ -2023,6 +2103,12 @@ ngx_http_mp4_read_stbl_atom(ngx_http_mp4_file_t *mp4, uint64_t atom_data_size)
|
||||
|
||||
trak = ngx_mp4_last_trak(mp4);
|
||||
|
||||
+ if (trak->out[NGX_HTTP_MP4_STBL_ATOM].buf) {
|
||||
+ ngx_log_error(NGX_LOG_ERR, mp4->file.log, 0,
|
||||
+ "duplicate mp4 stbl atom in \"%s\"", mp4->file.name.data);
|
||||
+ return NGX_ERROR;
|
||||
+ }
|
||||
+
|
||||
atom = &trak->stbl_atom_buf;
|
||||
atom->temporary = 1;
|
||||
atom->pos = atom_header;
|
||||
@@ -2144,6 +2230,12 @@ ngx_http_mp4_read_stsd_atom(ngx_http_mp4_file_t *mp4, uint64_t atom_data_size)
|
||||
|
||||
trak = ngx_mp4_last_trak(mp4);
|
||||
|
||||
+ if (trak->out[NGX_HTTP_MP4_STSD_ATOM].buf) {
|
||||
+ ngx_log_error(NGX_LOG_ERR, mp4->file.log, 0,
|
||||
+ "duplicate mp4 stsd atom in \"%s\"", mp4->file.name.data);
|
||||
+ return NGX_ERROR;
|
||||
+ }
|
||||
+
|
||||
atom = &trak->stsd_atom_buf;
|
||||
atom->temporary = 1;
|
||||
atom->pos = atom_header;
|
||||
@@ -2212,6 +2304,13 @@ ngx_http_mp4_read_stts_atom(ngx_http_mp4_file_t *mp4, uint64_t atom_data_size)
|
||||
atom_end = atom_table + entries * sizeof(ngx_mp4_stts_entry_t);
|
||||
|
||||
trak = ngx_mp4_last_trak(mp4);
|
||||
+
|
||||
+ if (trak->out[NGX_HTTP_MP4_STTS_ATOM].buf) {
|
||||
+ ngx_log_error(NGX_LOG_ERR, mp4->file.log, 0,
|
||||
+ "duplicate mp4 stts atom in \"%s\"", mp4->file.name.data);
|
||||
+ return NGX_ERROR;
|
||||
+ }
|
||||
+
|
||||
trak->time_to_sample_entries = entries;
|
||||
|
||||
atom = &trak->stts_atom_buf;
|
||||
@@ -2480,6 +2579,13 @@ ngx_http_mp4_read_stss_atom(ngx_http_mp4_file_t *mp4, uint64_t atom_data_size)
|
||||
"sync sample entries:%uD", entries);
|
||||
|
||||
trak = ngx_mp4_last_trak(mp4);
|
||||
+
|
||||
+ if (trak->out[NGX_HTTP_MP4_STSS_ATOM].buf) {
|
||||
+ ngx_log_error(NGX_LOG_ERR, mp4->file.log, 0,
|
||||
+ "duplicate mp4 stss atom in \"%s\"", mp4->file.name.data);
|
||||
+ return NGX_ERROR;
|
||||
+ }
|
||||
+
|
||||
trak->sync_samples_entries = entries;
|
||||
|
||||
atom_table = atom_header + sizeof(ngx_http_mp4_stss_atom_t);
|
||||
@@ -2678,6 +2784,13 @@ ngx_http_mp4_read_ctts_atom(ngx_http_mp4_file_t *mp4, uint64_t atom_data_size)
|
||||
"composition offset entries:%uD", entries);
|
||||
|
||||
trak = ngx_mp4_last_trak(mp4);
|
||||
+
|
||||
+ if (trak->out[NGX_HTTP_MP4_CTTS_ATOM].buf) {
|
||||
+ ngx_log_error(NGX_LOG_ERR, mp4->file.log, 0,
|
||||
+ "duplicate mp4 ctts atom in \"%s\"", mp4->file.name.data);
|
||||
+ return NGX_ERROR;
|
||||
+ }
|
||||
+
|
||||
trak->composition_offset_entries = entries;
|
||||
|
||||
atom_table = atom_header + sizeof(ngx_mp4_ctts_atom_t);
|
||||
@@ -2881,6 +2994,13 @@ ngx_http_mp4_read_stsc_atom(ngx_http_mp4_file_t *mp4, uint64_t atom_data_size)
|
||||
atom_end = atom_table + entries * sizeof(ngx_mp4_stsc_entry_t);
|
||||
|
||||
trak = ngx_mp4_last_trak(mp4);
|
||||
+
|
||||
+ if (trak->out[NGX_HTTP_MP4_STSC_ATOM].buf) {
|
||||
+ ngx_log_error(NGX_LOG_ERR, mp4->file.log, 0,
|
||||
+ "duplicate mp4 stsc atom in \"%s\"", mp4->file.name.data);
|
||||
+ return NGX_ERROR;
|
||||
+ }
|
||||
+
|
||||
trak->sample_to_chunk_entries = entries;
|
||||
|
||||
atom = &trak->stsc_atom_buf;
|
||||
@@ -3213,6 +3333,13 @@ ngx_http_mp4_read_stsz_atom(ngx_http_mp4_file_t *mp4, uint64_t atom_data_size)
|
||||
"sample uniform size:%uD, entries:%uD", size, entries);
|
||||
|
||||
trak = ngx_mp4_last_trak(mp4);
|
||||
+
|
||||
+ if (trak->out[NGX_HTTP_MP4_STSZ_ATOM].buf) {
|
||||
+ ngx_log_error(NGX_LOG_ERR, mp4->file.log, 0,
|
||||
+ "duplicate mp4 stsz atom in \"%s\"", mp4->file.name.data);
|
||||
+ return NGX_ERROR;
|
||||
+ }
|
||||
+
|
||||
trak->sample_sizes_entries = entries;
|
||||
|
||||
atom_table = atom_header + sizeof(ngx_mp4_stsz_atom_t);
|
||||
@@ -3396,6 +3523,16 @@ ngx_http_mp4_read_stco_atom(ngx_http_mp4_file_t *mp4, uint64_t atom_data_size)
|
||||
atom_end = atom_table + entries * sizeof(uint32_t);
|
||||
|
||||
trak = ngx_mp4_last_trak(mp4);
|
||||
+
|
||||
+ if (trak->out[NGX_HTTP_MP4_STCO_ATOM].buf
|
||||
+ || trak->out[NGX_HTTP_MP4_CO64_ATOM].buf)
|
||||
+ {
|
||||
+ ngx_log_error(NGX_LOG_ERR, mp4->file.log, 0,
|
||||
+ "duplicate mp4 stco/co64 atom in \"%s\"",
|
||||
+ mp4->file.name.data);
|
||||
+ return NGX_ERROR;
|
||||
+ }
|
||||
+
|
||||
trak->chunks = entries;
|
||||
|
||||
atom = &trak->stco_atom_buf;
|
||||
@@ -3602,6 +3739,16 @@ ngx_http_mp4_read_co64_atom(ngx_http_mp4_file_t *mp4, uint64_t atom_data_size)
|
||||
atom_end = atom_table + entries * sizeof(uint64_t);
|
||||
|
||||
trak = ngx_mp4_last_trak(mp4);
|
||||
+
|
||||
+ if (trak->out[NGX_HTTP_MP4_STCO_ATOM].buf
|
||||
+ || trak->out[NGX_HTTP_MP4_CO64_ATOM].buf)
|
||||
+ {
|
||||
+ ngx_log_error(NGX_LOG_ERR, mp4->file.log, 0,
|
||||
+ "duplicate mp4 stco/co64 atom in \"%s\"",
|
||||
+ mp4->file.name.data);
|
||||
+ return NGX_ERROR;
|
||||
+ }
|
||||
+
|
||||
trak->chunks = entries;
|
||||
|
||||
atom = &trak->co64_atom_buf;
|
||||
--
|
||||
2.30.2
|
||||
|
||||
@@ -296,6 +296,14 @@ config BR2_PACKAGE_NGINX_HTTP_UPSTREAM_RANDOM_MODULE
|
||||
help
|
||||
Enable ngx_http_upstream_random_module
|
||||
|
||||
config BR2_PACKAGE_NGINX_HTTP_UPSTREAM_ZONE_MODULE
|
||||
bool "ngx_http_upstream_zone_module"
|
||||
default y
|
||||
depends on BR2_PACKAGE_LIBATOMIC_OPS_ARCH_SUPPORTS
|
||||
select BR2_PACKAGE_LIBATOMIC_OPS
|
||||
help
|
||||
Enable ngx_http_upstream_zone_module
|
||||
|
||||
endif #BR2_PACKAGE_NGINX_HTTP
|
||||
|
||||
config BR2_PACKAGE_NGINX_MAIL
|
||||
@@ -339,6 +347,12 @@ config BR2_PACKAGE_NGINX_STREAM_REALIP_MODULE
|
||||
help
|
||||
Enable ngx_stream_realip_module
|
||||
|
||||
config BR2_PACKAGE_NGINX_STREAM_SET_MODULE
|
||||
bool "ngx_stream_set_module"
|
||||
default y
|
||||
help
|
||||
Enable ngx_stream_set_module
|
||||
|
||||
config BR2_PACKAGE_NGINX_STREAM_SSL_MODULE
|
||||
bool "ngx_stream_ssl_module"
|
||||
select BR2_PACKAGE_OPENSSL
|
||||
@@ -413,6 +427,8 @@ config BR2_PACKAGE_NGINX_STREAM_UPSTREAM_RANDOM_MODULE
|
||||
config BR2_PACKAGE_NGINX_STREAM_UPSTREAM_ZONE_MODULE
|
||||
bool "ngx_stream_upstream_zone_module"
|
||||
default y
|
||||
depends on BR2_PACKAGE_LIBATOMIC_OPS_ARCH_SUPPORTS
|
||||
select BR2_PACKAGE_LIBATOMIC_OPS
|
||||
help
|
||||
Enable ngx_stream_upstream_zone_module
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@ PIDFILE=/var/run/nginx.pid
|
||||
case "$1" in
|
||||
start)
|
||||
echo "Starting nginx..."
|
||||
mkdir -p /var/log/nginx /var/tmp/nginx
|
||||
mkdir -p /var/log/nginx /var/cache/nginx
|
||||
start-stop-daemon -S -x "$NGINX" -p "$PIDFILE"
|
||||
;;
|
||||
stop)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Locally calculated after checking pgp signature
|
||||
sha256 4c373e7ab5bf91d34a4f11a0c9496561061ba5eee6020db272a17a7228d35f99 nginx-1.18.0.tar.gz
|
||||
sha256 e462e11533d5c30baa05df7652160ff5979591d291736cfa5edb9fd2edb48c49 nginx-1.20.1.tar.gz
|
||||
# License files, locally calculated
|
||||
sha256 28ad30e2f64bd89ac1287b4606906bb99ed04d9f4e13fb6564a0be9c8a23f509 LICENSE
|
||||
sha256 b57270c1f73eb6624b38b2d0a1affcec56b21fab39efbf8c837428f05cef1d73 LICENSE
|
||||
|
||||
@@ -4,11 +4,14 @@
|
||||
#
|
||||
################################################################################
|
||||
|
||||
NGINX_VERSION = 1.18.0
|
||||
NGINX_VERSION = 1.20.1
|
||||
NGINX_SITE = http://nginx.org/download
|
||||
NGINX_LICENSE = BSD-2-Clause
|
||||
NGINX_LICENSE_FILES = LICENSE
|
||||
NGINX_DEPENDENCIES = host-pkgconf
|
||||
NGINX_CPE_ID_VENDOR = f5
|
||||
NGINX_DEPENDENCIES = \
|
||||
host-pkgconf \
|
||||
$(if $(BR2_PACKAGE_LIBXCRYPT),libxcrypt)
|
||||
|
||||
NGINX_CONF_OPTS = \
|
||||
--crossbuild=Linux::$(BR2_ARCH) \
|
||||
@@ -16,6 +19,9 @@ NGINX_CONF_OPTS = \
|
||||
--with-cpp="$(TARGET_CC)" \
|
||||
--with-ld-opt="$(TARGET_LDFLAGS)"
|
||||
|
||||
# 0011-Mp4-disabled-duplicate-atoms.patch
|
||||
NGINX_IGNORE_CVES += CVE-2022-41741 CVE-2022-41742
|
||||
|
||||
# www-data user and group are used for nginx. Because these user and group
|
||||
# are already set by buildroot, it is not necessary to redefine them.
|
||||
# See system/skeleton/etc/passwd
|
||||
@@ -46,20 +52,21 @@ NGINX_CONF_ENV += \
|
||||
|
||||
# prefix: nginx root configuration location
|
||||
NGINX_CONF_OPTS += \
|
||||
--force-endianness=$(call qstrip,$(call LOWERCASE,$(BR2_ENDIAN))) \
|
||||
--prefix=/usr \
|
||||
--conf-path=/etc/nginx/nginx.conf \
|
||||
--sbin-path=/usr/sbin/nginx \
|
||||
--pid-path=/var/run/nginx.pid \
|
||||
--lock-path=/var/run/lock/nginx.lock \
|
||||
--pid-path=/run/nginx.pid \
|
||||
--lock-path=/run/lock/nginx.lock \
|
||||
--user=www-data \
|
||||
--group=www-data \
|
||||
--error-log-path=/var/log/nginx/error.log \
|
||||
--http-log-path=/var/log/nginx/access.log \
|
||||
--http-client-body-temp-path=/var/tmp/nginx/client-body \
|
||||
--http-proxy-temp-path=/var/tmp/nginx/proxy \
|
||||
--http-fastcgi-temp-path=/var/tmp/nginx/fastcgi \
|
||||
--http-scgi-temp-path=/var/tmp/nginx/scgi \
|
||||
--http-uwsgi-temp-path=/var/tmp/nginx/uwsgi
|
||||
--http-client-body-temp-path=/var/cache/nginx/client-body \
|
||||
--http-proxy-temp-path=/var/cache/nginx/proxy \
|
||||
--http-fastcgi-temp-path=/var/cache/nginx/fastcgi \
|
||||
--http-scgi-temp-path=/var/cache/nginx/scgi \
|
||||
--http-uwsgi-temp-path=/var/cache/nginx/uwsgi
|
||||
|
||||
NGINX_CONF_OPTS += \
|
||||
$(if $(BR2_PACKAGE_NGINX_FILE_AIO),--with-file-aio) \
|
||||
@@ -199,7 +206,8 @@ NGINX_CONF_OPTS += \
|
||||
$(if $(BR2_PACKAGE_NGINX_HTTP_UPSTREAM_IP_HASH_MODULE),,--without-http_upstream_ip_hash_module) \
|
||||
$(if $(BR2_PACKAGE_NGINX_HTTP_UPSTREAM_LEAST_CONN_MODULE),,--without-http_upstream_least_conn_module) \
|
||||
$(if $(BR2_PACKAGE_NGINX_HTTP_UPSTREAM_RANDOM_MODULE),,--without-http_upstream_random_module) \
|
||||
$(if $(BR2_PACKAGE_NGINX_HTTP_UPSTREAM_KEEPALIVE_MODULE),,--without-http_upstream_keepalive_module)
|
||||
$(if $(BR2_PACKAGE_NGINX_HTTP_UPSTREAM_KEEPALIVE_MODULE),,--without-http_upstream_keepalive_module) \
|
||||
$(if $(BR2_PACKAGE_NGINX_HTTP_UPSTREAM_ZONE_MODULE),,--without-http_upstream_zone_module)
|
||||
|
||||
else # !BR2_PACKAGE_NGINX_HTTP
|
||||
NGINX_CONF_OPTS += --without-http
|
||||
@@ -229,6 +237,10 @@ ifeq ($(BR2_PACKAGE_NGINX_STREAM_REALIP_MODULE),y)
|
||||
NGINX_CONF_OPTS += --with-stream_realip_module
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_PACKAGE_NGINX_STREAM_SET_MODULE),)
|
||||
NGINX_CONF_OPTS += --without-stream_set_module
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_PACKAGE_NGINX_STREAM_SSL_MODULE),y)
|
||||
NGINX_DEPENDENCIES += openssl
|
||||
NGINX_CONF_OPTS += --with-stream_ssl_module
|
||||
|
||||
@@ -4,12 +4,13 @@ After=syslog.target network.target
|
||||
|
||||
[Service]
|
||||
Type=forking
|
||||
LogsDirectory=nginx
|
||||
CacheDirectory=nginx
|
||||
PIDFile=/run/nginx.pid
|
||||
ExecStartPre=/usr/bin/mkdir -p /var/log/nginx /var/tmp/nginx
|
||||
ExecStartPre=/usr/sbin/nginx -t -q -g 'pid /var/run/nginx.pid; daemon on; master_process on;'
|
||||
ExecStart=/usr/sbin/nginx -g 'pid /var/run/nginx.pid; daemon on; master_process on;'
|
||||
ExecReload=/usr/sbin/nginx -g 'pid /var/run/nginx.pid; daemon on; master_process on;' -s reload
|
||||
ExecStop=/usr/sbin/nginx -g 'pid /var/run/nginx.pid;' -s quit
|
||||
ExecStartPre=/usr/sbin/nginx -t -q -g 'daemon on; master_process on;'
|
||||
ExecStart=/usr/sbin/nginx -g 'daemon on; master_process on;'
|
||||
ExecReload=/usr/sbin/nginx -g 'daemon on; master_process on;' -s reload
|
||||
ExecStop=/usr/sbin/nginx -s quit
|
||||
PrivateDevices=yes
|
||||
|
||||
[Install]
|
||||
|
||||
Reference in New Issue
Block a user