From 167f43e3f00a81948db52accd75497ee446ff4cb Mon Sep 17 00:00:00 2001 From: Jakub Jirutka Date: Mon, 20 Nov 2023 18:13:56 +0100 Subject: [PATCH] main/nginx: upgrade third-party modules --- main/nginx/APKBUILD | 40 ++-- ...leth~fix-crash-uninitialized-pointer.patch | 30 --- ...eth~update-handling-multiple-headers.patch | 83 -------- main/nginx/nginx-module-vts~fixes.patch | 192 ------------------ ...nginx-upload-module~fix-nginx-compat.patch | 40 ++++ ...inx-upload-progress-module~fix-http2.patch | 44 ++++ ...geoip2_module~fix-segfault-on-reload.patch | 24 +++ 7 files changed, 127 insertions(+), 326 deletions(-) delete mode 100644 main/nginx/nginx-http-shibboleth~fix-crash-uninitialized-pointer.patch delete mode 100644 main/nginx/nginx-http-shibboleth~update-handling-multiple-headers.patch delete mode 100644 main/nginx/nginx-module-vts~fixes.patch create mode 100644 main/nginx/nginx-upload-module~fix-nginx-compat.patch create mode 100644 main/nginx/nginx-upload-progress-module~fix-http2.patch create mode 100644 main/nginx/ngx_http_geoip2_module~fix-segfault-on-reload.patch diff --git a/main/nginx/APKBUILD b/main/nginx/APKBUILD index 0356d3d9f31..ce11218ccad 100644 --- a/main/nginx/APKBUILD +++ b/main/nginx/APKBUILD @@ -37,7 +37,7 @@ pkgname=nginx # NOTE: Upgrade only to even-numbered versions (e.g. 1.14.z, 1.16.z)! # Odd-numbered versions are mainline (development) versions. pkgver=1.24.0 -pkgrel=13 +pkgrel=14 # Revision of nginx-tests to use for check(). _tests_hgrev=22f45bf99a9e _njs_ver=0.8.0 @@ -96,8 +96,7 @@ source="https://nginx.org/download/nginx-$pkgver.tar.gz naxsi~ff-header.patch naxsi~compat.patch nginx-upload-progress-module~fix.patch - nginx-http-shibboleth~update-handling-multiple-headers.patch - nginx-http-shibboleth~fix-crash-uninitialized-pointer.patch + nginx-upload-progress-module~fix-http2.patch ngx-fancyindex~fix-404-on-fs-root.patch ngx-fancyindex~fix-missing-saturday.patch lua-nginx-module~fix-handling-new-list-elements.patch @@ -106,7 +105,7 @@ source="https://nginx.org/download/nginx-$pkgver.tar.gz nchan~dont-fail-redis-cluster-before-consensus.patch nchan~fix-redis-race-condition.patch nginx-upload-module~fixes.patch - nginx-module-vts~fixes.patch + nginx-upload-module~fix-nginx-compat.patch nginx.conf default.conf stream.conf @@ -171,7 +170,7 @@ _add_module() { subpackages="$subpackages $pkgname-mod-$name:_module" } -_add_module "devel-kit" "v0.3.2" "https://github.com/vision5/ngx_devel_kit" +_add_module "devel-kit" "v0.3.3" "https://github.com/vision5/ngx_devel_kit" _devel_kit_so="ndk_http_module.so" _add_module "http-accounting" "v2.0" "https://github.com/Lax/traffic-accounting-nginx-module" @@ -179,7 +178,7 @@ _add_module "http-accounting" "v2.0" "https://github.com/Lax/traffic-accounting- _add_module "http-array-var" "v0.06" "https://github.com/openresty/array-var-nginx-module" _http_array_var_depends="$pkgname-mod-devel-kit" -_add_module "http-auth-jwt" "0.2.1" "https://github.com/kjdev/nginx-auth-jwt" +_add_module "http-auth-jwt" "0.3.0" "https://github.com/kjdev/nginx-auth-jwt" _http_auth_jwt_desc="Nginx third-party module kjdev/nginx-auth-jwt (version $_http_auth_jwt_ver)" _add_module "http-brotli" "v1.0.0rc" "https://github.com/google/ngx_brotli" @@ -203,10 +202,10 @@ _add_module "http-geoip2" "3.4" "https://github.com/leev/ngx_http_geoip2_module" _add_module "stream-geoip2" "3.4" "https://github.com/leev/ngx_http_geoip2_module" _stream_geoip2_depends="$pkgname-mod-stream" -_add_module "http-headers-more" "v0.34" "https://github.com/openresty/headers-more-nginx-module" +_add_module "http-headers-more" "v0.35" "https://github.com/openresty/headers-more-nginx-module" _http_headers_more_so="ngx_http_headers_more_filter_module.so" -_add_module "http-keyval" "0.1.0" "https://github.com/kjdev/nginx-keyval" +_add_module "http-keyval" "0.2.0" "https://github.com/kjdev/nginx-keyval" _add_module "http-log-zmq" "v1.0.0" "https://github.com/danifbento/nginx-log-zmq" @@ -229,7 +228,7 @@ _add_module "http-redis2" "v0.15" "https://github.com/openresty/redis2-nginx-mod _add_module "http-set-misc" "v0.33" "https://github.com/openresty/set-misc-nginx-module" _http_set_misc_depends="$pkgname-mod-devel-kit" -_add_module "http-shibboleth" "v2.0.1" "https://github.com/nginx-shib/nginx-http-shibboleth" +_add_module "http-shibboleth" "v2.0.2" "https://github.com/nginx-shib/nginx-http-shibboleth" _add_module "http-untar" "v1.1" "https://github.com/ajax16384/ngx_http_untar_module" @@ -242,9 +241,9 @@ _add_module "http-upstream-fair" "0.1.3" "https://github.com/itoffshore/nginx-up _add_module "http-upstream-jdomain" "1.4.0" "https://github.com/nicholaschiasson/ngx_upstream_jdomain" -_add_module "http-vod" "1.31" "https://github.com/kaltura/nginx-vod-module" +_add_module "http-vod" "1.32" "https://github.com/kaltura/nginx-vod-module" -_add_module "http-vts" "v0.2.1" "https://github.com/vozlt/nginx-module-vts" +_add_module "http-vts" "v0.2.2" "https://github.com/vozlt/nginx-module-vts" _http_vts_so="ngx_http_vhost_traffic_status_module.so" _add_module "http-zip" "1.3.0" "https://github.com/evanmiller/mod_zip" @@ -508,8 +507,7 @@ eee45b82a594c4dfa5eecf94cf14cd247bd1dd7d627aa0a26666828b3e2da1a358da251a23f0b5fe 7c35f51d73b6c20b6b9b030e76a4898752eae38e0f8e4001286a93633f0b1b11c39fd883116d86a323338027766d15d99c824a9cd9ffe934bea80b7af2a3070c naxsi~ff-header.patch 3e000d58e1259a656bb49af23623e6542ec994e3fe699e0005afde9ded5d505e7a174b206390b55ef639e53fd47516a86d88de675df86d550808da1d2732e683 naxsi~compat.patch 745e900573bc4d1ca6dd40da4743387f9ffaa764cca59591fcbfb1afe67980e529184f81a7cf8f047ddd1962a6a26ed65f1589d69a4f63f6f5701549f38a0652 nginx-upload-progress-module~fix.patch -a217a2659b81708ebc3bc3da72ef73b0edb8843352a381210a4e4191ba3c8ad25a34719fa65bdcd72a7b300f6ca6e473ee5109b9be42498ebabfc976e06ddd75 nginx-http-shibboleth~update-handling-multiple-headers.patch -bf05eb5cc957d61c09d84640ad08e6153bb53ae451f24d1456711189c0fdfea094d572df990016339548efd023bf2bb174e4ef594f04fde26a96d04c8aeb8241 nginx-http-shibboleth~fix-crash-uninitialized-pointer.patch +24bcde151301ed41eaea65c3792219b25dbb76e3eddd74064937038326698b83d6620d2515a954984502ad2a1c6c53843680952c2ce813f2da34652047675ddf nginx-upload-progress-module~fix-http2.patch 37ad4288684d8918045d406f9f46510211413ab343e47aa149e52fd773ad95e6ff10a1b4e7cdd60acaf9231a0c6a935ab489c25880444f1a79e8624693fa166e ngx-fancyindex~fix-404-on-fs-root.patch d54eb2152b2ddbf3e8956cb7b4634b1657635b21b9b4f91309d45a43553c9506ad70161d265e0840c1e84c9e04c0e89061600176ad2ec39311b5c0ce75e42f1e ngx-fancyindex~fix-missing-saturday.patch 99804144cfc0baebe384b900de28fd07f72ddb44390e47c204dd5fa2ecd8d76cc6ee9610ab83dcfce36671492ba8d1025ed87bb271d46b7a766f96ccdb2c4983 lua-nginx-module~fix-handling-new-list-elements.patch @@ -518,17 +516,17 @@ d54eb2152b2ddbf3e8956cb7b4634b1657635b21b9b4f91309d45a43553c9506ad70161d265e0840 abda15727e34178db2f8013a1c47e480ba323a3b3b88a44bbada0169b8ce66743911ec7b551272fc8540199070b62eadc78a19989f770794b43877c6743f573d nchan~dont-fail-redis-cluster-before-consensus.patch 2a87aee322a146a55e58d48636cdb6a3a182c308a6fe5327c9c2ece0487f669fe6b3f231f56e395e12b7c2ae2dd929a72a03dc18b1032ccc733184aac50d2381 nchan~fix-redis-race-condition.patch ef57603bd65ffbbb216fd748dab0126d3df7aafdfa70dce0ea9ef91373df95269546ec2fcaa03f842a8db3a16879274184a23b18db17b4f9be3916aedacb7765 nginx-upload-module~fixes.patch -ddffcd7adc159b2411be67f1c6e46fc426a5335471f1bee16ae93aadeb40d38a294f1df01c654efd61884cabccc3275ec814d893c50bb2f7e600ba68c43a0c10 nginx-module-vts~fixes.patch +bae6c3153810bf6f460248668f2c48e332aba37081e25e45a1691344508530ef1be9acee4d52f506cb09510c4fce8d93ca3178ba45af771c54e37126f4f11b1b nginx-upload-module~fix-nginx-compat.patch f6f44b8f17d079ef4db4fc0507672e7aaa6b93cbae10f24c91232f089a8b7a0c2db92a148b2a16b1992cdcdcad3b686146f9b8e955693a50982dd8aa04f54b2d nginx.conf 0907f69dc2d3dc1bad3a04fb6673f741f1a8be964e22b306ef9ae2f8e736e1f5733a8884bfe54f3553fff5132a0e5336716250f54272c3fec2177d6ba16986f3 default.conf 426f0c317322af7cab152f2070398c7aa5c059276ba504617a212f1e060bbb1dd9edc54e62d4cf5f14e3678235351c808ebeabe8b122757c74b3f505e8427106 stream.conf 09b110693e3f4377349ccea3c43cb8199c8579ee351eae34283299be99fdf764b0c1bddd552e13e4d671b194501618b29c822e1ad53b34101a73a63954363dbb nginx.logrotate ee10a5687740dde0c3d18d8b3555f49fcdc6abfc0a3bc2de1de3be0e99951a346fe8027d916aab73071ecd4e2c50871e7c867aca3a7a0fd16e3374c5caed1c57 nginx.initd 0b9b9ed01ac077e334c034faa2679f6e26740fb3362eebf8cef82d22b2af2a3faaa53bae3c9e14af51cbf64720a7c66431905ca5cc43f978366456cc4e3b7f4a nginx.confd -6deedeb3a95d7a6039ee474ee29cfc287f904a109f1c2908512d19521de89f3006fa3b650a368c637b23771cd5323558e30ad5d94b2c77242cbba691d349d232 ngx_devel_kit-0.3.2.tar.gz +a255e3a4a9b902b3e15140dc88bbbb152b0a9cdc64604152de41e1b254e81aa2a1e2c95c06cb4905c1520886acf9070031d63913b53fe98b034f8adad2bccf61 ngx_devel_kit-0.3.3.tar.gz 0df34c3765e18dc5cc5a053d3a17dbee17a686a1f6e76ad057c262741c4e4465c66bcef86e627a19258f836cad5f14745bf046fd396b00960ad79ed20c2a07bb traffic-accounting-nginx-module-2.0.tar.gz bc72158856a1be18a26ee04c6b5b0f0a20bcce688610a493bf31e2a133e7eb12e11f7c18197a09a72b1513f6a08348ee5281b9d5b84cf43603539040ebd23c26 array-var-nginx-module-0.06.tar.gz -7894a8598ee160dde4edd859ae83827c78c4fb9a31d0bcd0d9b4964f604175b790f69c3b8cc0244958b5ed6c700beeae20ec3eb1eff8a49a59b236f79c933a64 nginx-auth-jwt-0.2.1.tar.gz +a02ef958ee6c17ab96e8477e3e74e94d05e22f3c1322192474e05129ad8b6dabc849eb59060b5cd0ad6a9c0b05859c59c876008a506e79ea54af56897986c8e1 nginx-auth-jwt-0.3.0.tar.gz 05a880d5e48ac83be84498ed41fb4750211b827a9d7541acfd6ef494e5205a6e853d5594bfec3ab4ae668ea3f803e4f4b0ba550c76811971c8e266e42663c56d ngx_brotli-1.0.0rc.tar.gz aebc9b19a3e7dda3b57e6bd6d86a5ab66d25e05cf5c6c99c71234c789700eb9da8e29529b8b2abf3d775ff3c2610e695fc88e647738769f0d3730bcafc3be38b ngx_cache_purge-2.5.3.tar.gz 352cc3d033cc67ee34209f958dac13ada2147de429f4dd3da301c865d52970d80c8aa3c193f7fb28cf4854b88baff07b6efc3bae1fb813fe53d5956a87dfc81a nginx_cookie_flag_module-1.1.0.tar.gz @@ -537,8 +535,8 @@ c325ac4e3f3f735739e156d8c7ada503b34475c62533b4830231ff1b42c25cb0c841aae06b3448b5 399ce2690e85ee27802e8031954a1a3aa3fdc9246e17323a72a298d235931a8dbebdcb121ac8788e074872df0ef5b5a8a3d512b17fbe860b38f696ce42de3655 encrypted-session-nginx-module-0.09.tar.gz c208cdf3e245527d7b313f9ef1f5d36ca26e3bdafe67df56492a13b7726587538665e5d9fd50f295fc933f218dc33394f2fe442713d15631701dbfc4a156799b ngx-fancyindex-0.5.2.tar.gz 18dea21e5ae2647bea1fc448058a1b773c936917245edef8d861d5e23ed92e9a3b1ec4ef43ffb2ece7b5899d787910adcf4fbd39f84d7e8d7c54759e2fee5b72 ngx_http_geoip2_module-3.4.tar.gz -2c0c140feeb29f0154a223dc3020ff956f894d63e0232a7bc0ca33fcb26f8b807bda868159ae30b6cac7456ec25b831c3d299ea18e234202ae5d14c1ff471a4b headers-more-nginx-module-0.34.tar.gz -d96b35be4f42f743c14c5f87301c0fbd35f85d2eac4e82b878849118ad120d8198d4d2f359ec5aa239dcaea97b13ce143816866887b43b2cd03c07e6d2fcf419 nginx-keyval-0.1.0.tar.gz +75f478cd3fcf5476cf20f5a5e0f9eb1bead619bd717de3cf83fb9e3c7d2e47b535f2d2a671887eeb54d771d79f6c87e49d92c4c1d2aa9975aa8afcab65ad197b headers-more-nginx-module-0.35.tar.gz +45b8f107a492f415f5053b9b95d3dad481d5736c603b87c1342541214e89b9acbe37925f93acc396782406232e607879b52f9bb480f9021c10d405b832298022 nginx-keyval-0.2.0.tar.gz 015a358d987476bb61302fbbe1cb105f5314edc1a8b7ee6310aae697f755c79fcb1834ff561fced054c8cd5624f5387fcc1de729731ccd70662f2eb72bcdc174 nginx-log-zmq-1.0.0.tar.gz 01943f2b789b4e385592707f2769a5f4da668415ef9bd0c5263face2fb4146a28137fb8ab8b55056240dad034780601b7966913951cc0c77f4b3aa9eab50ae40 lua-nginx-module-0.10.25.tar.gz 72887c4490854b099cb26bb3f840073a36b0d812bde4486f04dc1be182ca74f0d1e3fd709e77c240c2dcf37665f74cf04e188ea9efe8e127c6789b27b487d0cd lua-upstream-nginx-module-0.07.tar.gz @@ -546,14 +544,14 @@ d7aac69b5eceeb1b0db4741201159ade1e0e7f6f7c3e8c4afa2f8959c6c00c3b5285d5185747c2fb 0f1c25d460dcf4e3407a1ef4bfcefe17eba7b0ff250f267e5bde0eb4298e9596c1e6992fc58fe35d8420888065353bf3883a1f1bbc5e607a00128992eb1ee6d2 nchan-1.3.6.tar.gz d6ca250db8de93edbd7875afca35e73cecdaf82132d1a7ee933cf94c6b8afa8e629e9e647a9321f2bc1fbb92137ec0d32dcd89b82ac5fae31e342537fb7e0431 redis2-nginx-module-0.15.tar.gz 1ff4c947538a5bd5f9d6adcd87b37f2702f5cc90e3342bc08359cbe8f290b705a3a2daa3dedfb1df3ce4bc19478c8fcac07081c4a53a804fc2862d50078278dc set-misc-nginx-module-0.33.tar.gz -1730845ea2e52be8c2f6cfceb2894304c5a07959a96940bb1617ee0e7cf81d22283304f411d9a219ddb71e4d9a66012bba0f6f5574d101aeb3c406f26c5d6a4e nginx-http-shibboleth-2.0.1.tar.gz +0f0c5167e999ffad0caa816d4b7d0a121f0598d578391834fe3293a3e023453d91b36ffc32a431ff3af3f9f376d2d78703998560094d20643b4049c2fec84bda nginx-http-shibboleth-2.0.2.tar.gz c3a7dd29c4a4e47d396b19622a290a04d4cceb97c1b8a508bc984eb8c81d17da4bf5789514bb996987f8343bc801ee4457a86a274bde98b49a809afdfc04cbde ngx_http_untar_module-1.1.tar.gz a0da355888398f86a6b5d065e58c05f9e057589ee785be9f515d77d7a020ae5a7b0656f5af30fb3b026f457326db2e26f4fed29026221ec5fc8156ef8586da25 nginx-upload-module-2.3.0.tar.gz c31c46344d49704389722325a041b9cd170fa290acefe92cfc572c07f711cd3039de78f28df48ca7dcb79b2e4bbe442580aaaf4d92883fd3a14bf41d66dd9d8c nginx-upload-progress-module-0.9.2.tar.gz 8adb7453c27748f4e685e3352e9b318b408da818754dc5b6244e908423941a8ba337561104f6e481f2553cbc0e334dcea73b57f8e810a9d6e974bb69ff8859e5 nginx-upstream-fair-0.1.3.tar.gz bbf3f4808f17fa797fa0c27bc1351098aa5d6b5d227376a0ab01b4f424942ec5ad9f5c09c7af284345988b119268bf579b24065fb6bc6bc2f2b2392e918f09bc ngx_upstream_jdomain-1.4.0.tar.gz -c1c866e351fb98918fddca53830834b32145c2ede3c37816948ca09ecb6bdfe9ded25e096f21e22f4816c6d97b22a131e60623003b96bdcccb39adb3f7ebe7f2 nginx-vod-module-1.31.tar.gz -fadd4727ffc56111b443364d90e5b0597f09b25006404b11377586f0ed754f5a85e0b84796360be927bd455f43eb28e18004991f086b611146cd340937a6e5e9 nginx-module-vts-0.2.1.tar.gz +c80ad088dc9029b328abd471ca5b869a0d1633748d62a1b953cad553969acb3d85579357c3001230cb956030f0f820b8e6ade8ca59ba6208d49a335788ea8798 nginx-vod-module-1.32.tar.gz +7295c1af3267b067793fb88e3d3a74fdba5187742141d447f597b8d726c455bfb163209eca5d00b00a57adc3f627078b404a43f5318f910a68c6aeaffb189b1c nginx-module-vts-0.2.2.tar.gz 8c5dda14da06ef776fe2b496c2f1b80d2c25c9269309aa560a006c369044c52917024a90f897b7212b2409a874bf2e0a3ab2dbc1e10ad84fa64f54f1f4df3d0d mod_zip-1.3.0.tar.gz 3f8c803221854c4b1a06aadc6313fbfec74bd7179c0ee51d4365b26ffa8875881a6e1e48f777a9c9efbb9170ab7478a82920d5448a2c2df485503d37bb03ab81 nginx-rtmp-module-1.2.2.tar.gz " diff --git a/main/nginx/nginx-http-shibboleth~fix-crash-uninitialized-pointer.patch b/main/nginx/nginx-http-shibboleth~fix-crash-uninitialized-pointer.patch deleted file mode 100644 index d2de412d1cf..00000000000 --- a/main/nginx/nginx-http-shibboleth~fix-crash-uninitialized-pointer.patch +++ /dev/null @@ -1,30 +0,0 @@ -Patch-Source: https://github.com/nginx-shib/nginx-http-shibboleth/commit/99d72dc82c56e8fc22e97dfaa9b61882361565f4 --- -From 99d72dc82c56e8fc22e97dfaa9b61882361565f4 Mon Sep 17 00:00:00 2001 -From: Heiko Jansen -Date: Thu, 18 Aug 2022 17:30:14 +0200 -Subject: [PATCH] bugfix: nginx crash when accessing uninitialized pointer - -This copies code contributed to ngx_headers_more by @zhuizhuhaomeng -in openresty/headers-more-nginx-module@d502e41 - -I omitted the PCRE2-related build flag added in that same commit because -I do not understand the reason for that. ---- - ngx_http_shibboleth_module.c | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/ngx_http_shibboleth_module.c b/ngx_http_shibboleth_module.c -index cbfb37d..d211a11 100644 ---- a/ngx_http_shibboleth_module.c -+++ b/ngx_http_shibboleth_module.c -@@ -763,6 +763,9 @@ ngx_http_set_header_helper(ngx_http_request_t *r, ngx_http_shib_request_header_v - - h->key = hv->key; - h->value = *value; -+#if defined(nginx_version) && nginx_version >= 1023000 -+ h->next = NULL; -+#endif - - h->lowcase_key = ngx_pnalloc(r->pool, h->key.len); - if (h->lowcase_key == NULL) { diff --git a/main/nginx/nginx-http-shibboleth~update-handling-multiple-headers.patch b/main/nginx/nginx-http-shibboleth~update-handling-multiple-headers.patch deleted file mode 100644 index f943322780e..00000000000 --- a/main/nginx/nginx-http-shibboleth~update-handling-multiple-headers.patch +++ /dev/null @@ -1,83 +0,0 @@ -Patch-Source: https://github.com/nginx-shib/nginx-http-shibboleth/commit/932eccff3fbde750eb624df10745292c56309b92 --- -From 932eccff3fbde750eb624df10745292c56309b92 Mon Sep 17 00:00:00 2001 -From: Heiko Jansen -Date: Thu, 18 Aug 2022 17:28:15 +0200 -Subject: [PATCH] bugfix: update handling of multiple headers changed in nginx - 1.23.0 - -This copies code contributed to ngx_headers_more by @hnakamur in -openresty/headers-more-nginx-module@91eb0db ---- - ngx_http_shibboleth_module.c | 44 ++++++++++++++++++++++++++++++++++++ - 1 file changed, 44 insertions(+) - -diff --git a/ngx_http_shibboleth_module.c b/ngx_http_shibboleth_module.c -index 567e13f..cbfb37d 100644 ---- a/ngx_http_shibboleth_module.c -+++ b/ngx_http_shibboleth_module.c -@@ -9,6 +9,9 @@ - * Contains elements adapted from ngx_lua: - * Copyright (C) 2009-2015, by Xiaozhe Wang (chaoslawful) chaoslawful@gmail.com. - * Copyright (C) 2009-2015, by Yichun "agentzh" Zhang (章亦春) agentzh@gmail.com, CloudFlare Inc. -+ * Contains elements adapted from ngx_headers_more: -+ * Copyright (c) 2009-2017, Yichun "agentzh" Zhang (章亦春) agentzh@gmail.com, OpenResty Inc. -+ * Copyright (c) 2010-2013, Bernd Dorn. - * - * Distributed under 2-clause BSD license, see LICENSE file. - */ -@@ -840,6 +843,46 @@ static ngx_int_t - ngx_http_set_builtin_multi_header(ngx_http_request_t *r, - ngx_http_shib_request_header_val_t *hv, ngx_str_t *value) - { -+#if defined(nginx_version) && nginx_version >= 1023000 -+ ngx_table_elt_t **headers, *h, *ho, **ph; -+ -+ headers = (ngx_table_elt_t **) ((char *) &r->headers_out + hv->offset); -+ -+ if (*headers) { -+ for (h = (*headers)->next; h; h = h->next) { -+ h->hash = 0; -+ h->value.len = 0; -+ } -+ -+ h = *headers; -+ -+ h->value = *value; -+ -+ if (value->len == 0) { -+ h->hash = 0; -+ -+ } else { -+ h->hash = hv->hash; -+ } -+ -+ return NGX_OK; -+ } -+ -+ for (ph = headers; *ph; ph = &(*ph)->next) { /* void */ } -+ -+ ho = ngx_list_push(&r->headers_out.headers); -+ if (ho == NULL) { -+ return NGX_ERROR; -+ } -+ -+ ho->value = *value; -+ ho->hash = hv->hash; -+ ngx_str_set(&ho->key, "Cache-Control"); -+ ho->next = NULL; -+ *ph = ho; -+ -+ return NGX_OK; -+#else - ngx_array_t *pa; - ngx_table_elt_t *ho, **ph; - ngx_uint_t i; -@@ -898,6 +941,7 @@ ngx_http_set_builtin_multi_header(ngx_http_request_t *r, - *ph = ho; - - return NGX_OK; -+#endif - } - - diff --git a/main/nginx/nginx-module-vts~fixes.patch b/main/nginx/nginx-module-vts~fixes.patch deleted file mode 100644 index 2715c21ea8e..00000000000 --- a/main/nginx/nginx-module-vts~fixes.patch +++ /dev/null @@ -1,192 +0,0 @@ -git diff v0.2.1..bf64dbfabfc49a574eb361f34b2401f880b5a324 src/ --- -commit bf64dbfabfc49a574eb361f34b2401f880b5a324 -Merge: a98a4b8 30a38c5 -Author: Y.Horie -Date: Mon Apr 17 22:46:33 2023 +0900 - - Merge pull request #270 from u5surf/issue-269 - - Fix vtsn.len type #269 - -commit 30a38c5ad5c18dd14137d78f0593c5f74c0e39c7 -Author: u5surf -Date: Sun Apr 16 17:06:06 2023 +0900 - - Fix vtsn.len type #269 - -commit 4b4dd60bb6eefdb932b80813bfe0a435009555af -Author: u5surf -Date: Sun Mar 26 07:47:15 2023 +0900 - - Fix conditions of the pointer pa - -commit a2961efa253ae2471a27c6c429278594cbcb701e -Author: u5surf -Date: Sun Mar 19 00:33:22 2023 +0900 - - Fix ngx_utf8_decode - - * it is necessary while the below patch is released officially. - * https://github.com/nginx/nginx/commit/2c5fccd4693c0a68e1c72d65e016ba83e861120e - -commit fcc3c1575e102fa1c52a982d46abe14a10dc2097 -Author: u5surf -Date: Mon Feb 20 08:45:12 2023 +0900 - - Fix escaping filter_key in prometheus output - - * Fixes #142 - * it can be escaped the 2 - 4 bytes character - -commit 4bbac923842c5e12a89168e208d77f0da6b91f9b -Author: u5surf -Date: Tue Oct 18 17:38:59 2022 +0900 - - Bugfix: fixed issues/228 Change the reffered source of upstream_states in shm_add_upstream() - -commit 1277c0121bc19603cf7554d6316fa3303feba6f3 -Author: YoungJoo.Kim -Date: Mon Sep 26 23:35:38 2022 +0900 - - Bugfix: fixed issues/248 Shared memory (lock|unlock) is set when using the ngx_http_vhost_traffic_status_display_get_size() function - -commit 319fe4c84390c4628e558bb248ea7ffc540d4b7e -Author: u5surf -Date: Mon Sep 26 21:03:16 2022 +0900 - - bugfix: Add shmtx unlock --- -diff --git a/src/ngx_http_vhost_traffic_status_display.c b/src/ngx_http_vhost_traffic_status_display.c -index 17b35fc..4f4c01f 100644 ---- a/src/ngx_http_vhost_traffic_status_display.c -+++ b/src/ngx_http_vhost_traffic_status_display.c -@@ -524,15 +524,25 @@ ngx_http_vhost_traffic_status_display_get_size(ngx_http_request_t *r, - ngx_int_t format) - { - ngx_uint_t size, un; -+ ngx_slab_pool_t *shpool; -+ ngx_http_vhost_traffic_status_loc_conf_t *vtscf; - ngx_http_vhost_traffic_status_shm_info_t *shm_info; - -+ vtscf = ngx_http_get_module_loc_conf(r, ngx_http_vhost_traffic_status_module); -+ shpool = (ngx_slab_pool_t *) vtscf->shm_zone->shm.addr; -+ - shm_info = ngx_pcalloc(r->pool, sizeof(ngx_http_vhost_traffic_status_shm_info_t)); - if (shm_info == NULL) { - return NGX_ERROR; - } - -+ /* Caveat: Do not use duplicate ngx_shmtx_lock() before this function. */ -+ ngx_shmtx_lock(&shpool->mutex); -+ - ngx_http_vhost_traffic_status_shm_info(r, shm_info); - -+ ngx_shmtx_unlock(&shpool->mutex); -+ - /* allocate memory for the upstream groups even if upstream node not exists */ - un = shm_info->used_node - + (ngx_uint_t) ngx_http_vhost_traffic_status_display_get_upstream_nelts(r); -diff --git a/src/ngx_http_vhost_traffic_status_dump.c b/src/ngx_http_vhost_traffic_status_dump.c -index fafe60c..5f31629 100644 ---- a/src/ngx_http_vhost_traffic_status_dump.c -+++ b/src/ngx_http_vhost_traffic_status_dump.c -@@ -393,7 +393,7 @@ ngx_http_vhost_traffic_status_dump_restore(ngx_event_t *ev) - /* read: data */ - offset += n; - n = ngx_read_file(&file, buf, vtsn.len, offset); -- if (n != vtsn.len) { -+ if (n >= 0 && vtsn.len <= SSIZE_MAX && n != (ssize_t) vtsn.len) { - ngx_log_debug2(NGX_LOG_DEBUG_HTTP, ev->log, 0, - "dump_restore::ngx_read_file() read:%z, data:%z failed", - n, vtsn.len); -diff --git a/src/ngx_http_vhost_traffic_status_node.h b/src/ngx_http_vhost_traffic_status_node.h -index 3bbb53e..9cc4a0e 100644 ---- a/src/ngx_http_vhost_traffic_status_node.h -+++ b/src/ngx_http_vhost_traffic_status_node.h -@@ -100,7 +100,7 @@ typedef struct { - #endif - - ngx_http_vhost_traffic_status_node_upstream_t stat_upstream; -- u_short len; -+ size_t len; - u_char data[1]; - } ngx_http_vhost_traffic_status_node_t; - -diff --git a/src/ngx_http_vhost_traffic_status_shm.c b/src/ngx_http_vhost_traffic_status_shm.c -index 31f73e1..78d181c 100644 ---- a/src/ngx_http_vhost_traffic_status_shm.c -+++ b/src/ngx_http_vhost_traffic_status_shm.c -@@ -130,6 +130,7 @@ ngx_http_vhost_traffic_status_shm_add_node(ngx_http_request_t *r, - if (node == NULL) { - shm_info = ngx_pcalloc(r->pool, sizeof(ngx_http_vhost_traffic_status_shm_info_t)); - if (shm_info == NULL) { -+ ngx_shmtx_unlock(&shpool->mutex); - return NGX_ERROR; - } - -@@ -147,7 +148,7 @@ ngx_http_vhost_traffic_status_shm_add_node(ngx_http_request_t *r, - vtsn = (ngx_http_vhost_traffic_status_node_t *) &node->color; - - node->key = hash; -- vtsn->len = (u_short) key->len; -+ vtsn->len = key->len; - ngx_http_vhost_traffic_status_node_init(r, vtsn); - vtsn->stat_upstream.type = type; - ngx_memcpy(vtsn->data, key->data, key->len); -@@ -480,14 +481,14 @@ ngx_http_vhost_traffic_status_shm_add_upstream(ngx_http_request_t *r) - - found: - -- state = r->upstream_states->elts; -- if (state[0].peer == NULL) { -+ state = u->state; -+ if (state->peer == NULL) { - ngx_log_error(NGX_LOG_ERR, r->connection->log, 0, - "shm_add_upstream::peer failed"); - return NGX_ERROR; - } - -- dst.len = (uscf->port ? 0 : uscf->host.len + sizeof("@") - 1) + state[0].peer->len; -+ dst.len = (uscf->port ? 0 : uscf->host.len + sizeof("@") - 1) + state->peer->len; - dst.data = ngx_pnalloc(r->pool, dst.len); - if (dst.data == NULL) { - return NGX_ERROR; -@@ -495,13 +496,13 @@ found: - - p = dst.data; - if (uscf->port) { -- p = ngx_cpymem(p, state[0].peer->data, state[0].peer->len); -+ p = ngx_cpymem(p, state->peer->data, state->peer->len); - type = NGX_HTTP_VHOST_TRAFFIC_STATUS_UPSTREAM_UA; - - } else { - p = ngx_cpymem(p, uscf->host.data, uscf->host.len); - *p++ = NGX_HTTP_VHOST_TRAFFIC_STATUS_KEY_SEPARATOR; -- p = ngx_cpymem(p, state[0].peer->data, state[0].peer->len); -+ p = ngx_cpymem(p, state->peer->data, state->peer->len); - type = NGX_HTTP_VHOST_TRAFFIC_STATUS_UPSTREAM_UG; - } - -diff --git a/src/ngx_http_vhost_traffic_status_string.c b/src/ngx_http_vhost_traffic_status_string.c -index f582b56..cc64e61 100644 ---- a/src/ngx_http_vhost_traffic_status_string.c -+++ b/src/ngx_http_vhost_traffic_status_string.c -@@ -187,7 +187,7 @@ ngx_http_vhost_traffic_status_escape_prometheus(ngx_pool_t *pool, ngx_str_t *buf - } - } else { - char_end = pa; -- if (ngx_utf8_decode(&char_end, last - pa) > 0x10ffff) { -+ if (*pa >= 0xf8 || ngx_utf8_decode(&char_end, last - pa) > 0x10ffff) { - break; - } else { - pa = char_end; -@@ -237,7 +237,7 @@ ngx_http_vhost_traffic_status_escape_prometheus(ngx_pool_t *pool, ngx_str_t *buf - } - } else { - char_end = pa; -- if (ngx_utf8_decode(&char_end, last - pa) > 0x10ffff) { -+ if (*pa >= 0xf8 || ngx_utf8_decode(&char_end, last - pa) > 0x10ffff) { - /* invalid UTF-8 - escape single char to allow resynchronization */ - c = *pa++; - /* two slashes are required to be valid encoding for prometheus*/ diff --git a/main/nginx/nginx-upload-module~fix-nginx-compat.patch b/main/nginx/nginx-upload-module~fix-nginx-compat.patch new file mode 100644 index 00000000000..474a84fec4b --- /dev/null +++ b/main/nginx/nginx-upload-module~fix-nginx-compat.patch @@ -0,0 +1,40 @@ +Patch-Source: https://github.com/fdintino/nginx-upload-module/commit/96e64603dc5a588a2d1ae59a62b0019d6b41070c +-- +From 96e64603dc5a588a2d1ae59a62b0019d6b41070c Mon Sep 17 00:00:00 2001 +From: Karthikdasari0423 <92445174+Karthikdasari0423@users.noreply.github.com> +Date: Thu, 22 Jun 2023 01:40:07 +0530 +Subject: [PATCH] Update ngx_http_upload_module.c (#147) + +* Update ngx_http_upload_module.c + +* Fix whitespace + +--------- + +Co-authored-by: Frankie Dintino +--- + ngx_http_upload_module.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/ngx_http_upload_module.c b/ngx_http_upload_module.c +index c51429f..66150f0 100644 +--- a/ngx_http_upload_module.c ++++ b/ngx_http_upload_module.c +@@ -12,7 +12,7 @@ + + #include + +-typedef ngx_md5_t MD5_CTX; ++typedef ngx_md5_t MD5_CTX1; + + #define MD5Init ngx_md5_init + #define MD5Update ngx_md5_update +@@ -189,7 +189,7 @@ typedef struct { + } ngx_http_upload_loc_conf_t; + + typedef struct ngx_http_upload_md5_ctx_s { +- MD5_CTX md5; ++ MD5_CTX1 md5; + u_char md5_digest[MD5_DIGEST_LENGTH * 2]; + } ngx_http_upload_md5_ctx_t; + diff --git a/main/nginx/nginx-upload-progress-module~fix-http2.patch b/main/nginx/nginx-upload-progress-module~fix-http2.patch new file mode 100644 index 00000000000..9886e1d7f09 --- /dev/null +++ b/main/nginx/nginx-upload-progress-module~fix-http2.patch @@ -0,0 +1,44 @@ +Patch-Source: https://github.com/masterzen/nginx-upload-progress-module/pull/57 +-- +From 594f1233c3c622ad51a2bde0c3289747af20e245 Mon Sep 17 00:00:00 2001 +From: Allan Jude +Date: Sat, 26 Nov 2022 20:28:10 +0000 +Subject: [PATCH] Restore functionality of upload-progress for HTTP2 + +The upload-progress module was only getting notified of the first +block of uploaded data, because r->read_event_handler was being +reset by ngx_http_v2_read_request_body() and +ngx_http_v2_process_request_body() + +The patch detects that situation, updates module_ctx to call the +new function, then reinserts itself as the read_event_handler so +we continue to be notified about uploaded data. + +Introduced in nginx/nginx@67d160bf25e02ba6679bb6c3b9cbdfeb29b759de + +Sponsored-by: ScaleEngine Inc. +--- + ngx_http_uploadprogress_module.c | 10 ++++++++++ + 1 file changed, 10 insertions(+) + +diff --git a/ngx_http_uploadprogress_module.c b/ngx_http_uploadprogress_module.c +index 33bdaf7..f17ad92 100644 +--- a/ngx_http_uploadprogress_module.c ++++ b/ngx_http_uploadprogress_module.c +@@ -489,6 +489,16 @@ static void ngx_http_uploadprogress_event_handler(ngx_http_request_t *r) + module_ctx = ngx_http_get_module_ctx(r, ngx_http_uploadprogress_module); + if (module_ctx != NULL ) { + module_ctx->read_event_handler(r); ++ /* ++ * Both ngx_http_v2_read_request_body() and ++ * ngx_http_v2_process_request_body() modify read_event_handler, ++ * we respect the change, but re-interpose our function so we still get ++ * future events, otherwise we miss all upload progress. ++ */ ++ if (r->read_event_handler != ngx_http_uploadprogress_event_handler) { ++ module_ctx->read_event_handler = r->read_event_handler; ++ r->read_event_handler = ngx_http_uploadprogress_event_handler; ++ } + } + + /* at this stage, r is not anymore safe to use */ diff --git a/main/nginx/ngx_http_geoip2_module~fix-segfault-on-reload.patch b/main/nginx/ngx_http_geoip2_module~fix-segfault-on-reload.patch new file mode 100644 index 00000000000..8507da17995 --- /dev/null +++ b/main/nginx/ngx_http_geoip2_module~fix-segfault-on-reload.patch @@ -0,0 +1,24 @@ +Patch-Source: https://github.com/leev/ngx_http_geoip2_module/commit/df09bbb10a6717dac6b73a4eef3ad15afa071957 +-- +From df09bbb10a6717dac6b73a4eef3ad15afa071957 Mon Sep 17 00:00:00 2001 +From: Lee Valentine +Date: Wed, 14 Jun 2023 10:17:41 -0500 +Subject: [PATCH] Fix #90: segfault on bad auto reload value + +--- + ngx_http_geoip2_module.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/ngx_http_geoip2_module.c b/ngx_http_geoip2_module.c +index 4b3461c..4667796 100644 +--- a/ngx_http_geoip2_module.c ++++ b/ngx_http_geoip2_module.c +@@ -451,7 +451,7 @@ ngx_http_geoip2_parse_config(ngx_conf_t *cf, ngx_command_t *dummy, void *conf) + if (interval == (time_t) NGX_ERROR) { + ngx_conf_log_error(NGX_LOG_EMERG, cf, 0, + "invalid interval for auto_reload \"%V\"", +- value[1]); ++ &value[1]); + return NGX_CONF_ERROR; + } +