From aaed9a9045448ac1625614154c8b82586aa7d57d Mon Sep 17 00:00:00 2001 From: Josh Date: Wed, 18 Jun 2025 08:35:38 -0400 Subject: [PATCH 1/7] chore: remove `mbstring.func_overload` from `.user.ini` Deprecated in PHP 7.2 Removed in PHP 8.0 https://www.php.net/manual/en/mbstring.configuration.php#ini.mbstring.func-overload Signed-off-by: Josh --- .user.ini | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.user.ini b/.user.ini index 1dfba4acda8e0..e91cea5508df1 100644 --- a/.user.ini +++ b/.user.ini @@ -1,7 +1,9 @@ ; SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors ; SPDX-FileCopyrightText: 2014-2016 ownCloud, Inc. ; SPDX-License-Identifier: AGPL-3.0-only -mbstring.func_overload=0 +; +; NOTE: PHP caches this file for 300 seconds by default +; always_populate_raw_post_data=-1 default_charset='UTF-8' output_buffering=0 From 61d55679134991df6d8b6024639c69227c3fa95d Mon Sep 17 00:00:00 2001 From: Josh Date: Wed, 18 Jun 2025 08:37:11 -0400 Subject: [PATCH 2/7] chore: remove `mbstring.func_overload` from `.htaccess` Deprecated in PHP 7.2 Removed in PHP 8.0 https://www.php.net/manual/en/mbstring.configuration.php#ini.mbstring.func-overload Signed-off-by: Josh --- .htaccess | 1 - 1 file changed, 1 deletion(-) diff --git a/.htaccess b/.htaccess index fb86475eef065..0976705609ad3 100644 --- a/.htaccess +++ b/.htaccess @@ -60,7 +60,6 @@ - php_value mbstring.func_overload 0 php_value default_charset 'UTF-8' php_value output_buffering 0 From 130cb05ea4e8809892682bc83f98864d81d829a0 Mon Sep 17 00:00:00 2001 From: Josh Date: Wed, 18 Jun 2025 08:43:53 -0400 Subject: [PATCH 3/7] chore: remove `mbstring.func_overload` check from `checkserver()` Signed-off-by: Josh --- lib/private/legacy/OC_Util.php | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/lib/private/legacy/OC_Util.php b/lib/private/legacy/OC_Util.php index ebca1105838ea..d3588280085f3 100644 --- a/lib/private/legacy/OC_Util.php +++ b/lib/private/legacy/OC_Util.php @@ -458,22 +458,6 @@ public static function checkServer(\OC\SystemConfig $config) { $webServerRestart = true; } - /** - * The mbstring.func_overload check can only be performed if the mbstring - * module is installed as it will return null if the checking setting is - * not available and thus a check on the boolean value fails. - * - * TODO: Should probably be implemented in the above generic dependency - * check somehow in the long-term. - */ - if ($iniWrapper->getBool('mbstring.func_overload') !== null - && $iniWrapper->getBool('mbstring.func_overload') === true) { - $errors[] = [ - 'error' => $l->t('mbstring.func_overload is set to %s instead of the expected value 0.', [$iniWrapper->getString('mbstring.func_overload')]), - 'hint' => $l->t('To fix this issue set mbstring.func_overload to 0 in your php.ini.') - ]; - } - if (!self::isAnnotationsWorking()) { $errors[] = [ 'error' => $l->t('PHP is apparently set up to strip inline doc blocks. This will make several core apps inaccessible.'), From 8ac796cd865109147e8ab90ea06d3746d006e004 Mon Sep 17 00:00:00 2001 From: Josh Date: Wed, 18 Jun 2025 08:48:33 -0400 Subject: [PATCH 4/7] chore: remove `mbstring.func_overload` from setUploadLimit .htaccess Signed-off-by: Josh --- tests/data/setUploadLimit/htaccess | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/data/setUploadLimit/htaccess b/tests/data/setUploadLimit/htaccess index 06e2c7ec2e446..6afc2f6f20118 100644 --- a/tests/data/setUploadLimit/htaccess +++ b/tests/data/setUploadLimit/htaccess @@ -24,7 +24,6 @@ php_value upload_max_filesize 513M php_value post_max_size 513M php_value memory_limit 512M -php_value mbstring.func_overload 0 php_value always_populate_raw_post_data -1 php_value default_charset 'UTF-8' php_value output_buffering off From 6d55224d4621fb17e585a91d10d38e584a7f942b Mon Sep 17 00:00:00 2001 From: Josh Date: Wed, 18 Jun 2025 08:54:35 -0400 Subject: [PATCH 5/7] chore: remove mbstring.func_overload from setUploadLimit .user.ini Signed-off-by: Josh --- tests/data/setUploadLimit/user.ini | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/data/setUploadLimit/user.ini b/tests/data/setUploadLimit/user.ini index c5996e8d47e85..5cad4e02106c2 100644 --- a/tests/data/setUploadLimit/user.ini +++ b/tests/data/setUploadLimit/user.ini @@ -1,7 +1,6 @@ upload_max_filesize=513M post_max_size=513M memory_limit=512M -mbstring.func_overload=0 always_populate_raw_post_data=-1 default_charset='UTF-8' output_buffering=off From 7996a3eb3a48a4b2fc4e88ffa5f3fa96c73712ad Mon Sep 17 00:00:00 2001 From: Josh Date: Wed, 18 Jun 2025 09:43:19 -0400 Subject: [PATCH 6/7] chore: remove mbstring.func_overload from htaccessWithValidModifiedContent Signed-off-by: Josh --- .../integritycheck/htaccessWithValidModifiedContent/.htaccess | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/tests/data/integritycheck/htaccessWithValidModifiedContent/.htaccess b/tests/data/integritycheck/htaccessWithValidModifiedContent/.htaccess index 1b5eb98b7f8ab..11525b50a1752 100644 --- a/tests/data/integritycheck/htaccessWithValidModifiedContent/.htaccess +++ b/tests/data/integritycheck/htaccessWithValidModifiedContent/.htaccess @@ -1,6 +1,5 @@ # Start of valid file - php_value mbstring.func_overload 0 php_value always_populate_raw_post_data -1 php_value default_charset 'UTF-8' php_value output_buffering 0 @@ -10,4 +9,4 @@ #### DO NOT CHANGE ANYTHING ABOVE THIS LINE #### -# Content that should change the hash in the root folder \ No newline at end of file +# Content that should change the hash in the root folder From 4082a45d6dc43a6958a79fd97b7124a4841963f7 Mon Sep 17 00:00:00 2001 From: Joas Schilling Date: Mon, 25 Aug 2025 12:33:38 +0200 Subject: [PATCH 7/7] test: Adjust the hashes and signatures Signed-off-by: Joas Schilling --- tests/lib/IntegrityCheck/CheckerTest.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/lib/IntegrityCheck/CheckerTest.php b/tests/lib/IntegrityCheck/CheckerTest.php index 823258cab103c..990a632cb8c39 100644 --- a/tests/lib/IntegrityCheck/CheckerTest.php +++ b/tests/lib/IntegrityCheck/CheckerTest.php @@ -585,10 +585,10 @@ public function testWriteCoreSignatureWithInvalidModifiedHtaccess(): void { public function testWriteCoreSignatureWithValidModifiedHtaccess(): void { $expectedSignatureFileData = '{ "hashes": { - ".htaccess": "7e6a7a4d8ee4f3fbc45dd579407c643471575a9d127d1c75f6d0a49e80766c3c587104b2139ef76d2a4bffce3f45777900605aaa49519c9532909b71e5030227", + ".htaccess": "b1a6a9fbb85417f3f461e654f1a8ae56a131fe54e4257b2b8b7ba6b3fedd55b83c0df20550cd6c52bd3a96d148a5a3c4ea24d99dca5d45a644491e56ad99df8e", "subfolder\/.htaccess": "2c57b1e25050e11dc3ae975832f378c452159f7b69f818e47eeeafadd6ba568517461dcb4d843b90b906cd7c89d161bc1b89dff8e3ae0eb6f5088508c47befd1" }, - "signature": "YVwQvl9Dh8UebCumfgzFxfz3NiZJLmYG8oJVTfEBhulI4KXBnTG1jZTprf4XxG2XIriEYAZXsoXpu9xWsUFe9QfdncwoEpqJtGq7l6aVDTofX5Be5b03MQFJr4cflgllqW77QZ84D9O9qWF\/vNDAofXcwrzT04CxLDhyQgTCgYUnRjG9pnuP\/gtbDKbTjRvxhTyfg3T0Phv1+XAvpTPnH2q5A+1+LmiqziUJ1sMipsKo+jQP614eCi9qjmqhHIgLRgcuOBvsi4g5WUcdcAIZ6qLt5gm2Y3r6rKNVchosU9ZydMUTfjuejDbVwE2fNH5UUnV57fQBxwg9CfX7iFHqKv1bfv5Zviu12paShgWCB12uR3iH\/3lmTJn8K5Xqit3G4eymFaJ5IChdUThBp\/jhQSI2r8sPcZDYSJ\/UZKuFnezFdKhEBd5hMXe8aKAd6ijGDjLARksFuqpi1sS8llC5K1Q+DzktSL\/o64TY4Vuvykiwe\/BAk2SkL9voOtrvU7vfDBcuCPbDJnSBBC0ESpcXeClTBIn6xZ9WaxqoS7sinE\/kUwtWsRd04I7d79\/ouotyNb+mBhTuRsZT12p\/gn4JHXXNUAIpTwchYzGxbfNJ4kxnYBFZWVmvsSqOLFZu1yi5BP3ktA9yhFyWIa5659azRFEKRdXpVHtQVa4IgdhxEqA=", + "signature": "nkCCG4hEtRyIo7rxnBBTCYtb4aIoCZA/bgbi8OrsKA9ZcZBEWqpSjWMvl9K88e+Ci/HIynv3Y/JdsN4OABRnNtyTMgsVuzqqK+mYYTFlzmRBmCNJjHSjVgfxQ6vhlYGwTGJWuhxFY5sv/dolx2G3TP7fJT71XdWI/wPkoCoQpDCx4ciFHJMAX9cuHkqpfIJXzCP9P+zt5DJjm9UHGII9DJxu/I47ujTqYIgo6QyGZqp91ydy1wkM7xcLt5koTRQRfR8xtyFFEuk3FvNgI/Do+55aClpksae2wMxDfThe37Yya5ibIlTmeYUDWLa8zv2SdVVvsGUcPewICOElAIkIWo69GFvJxW4vroal42/EDB9WQxUG/2uIksQEsDQmKCc0h6pyTViP47AG+6lUa59HMvzNGxuHjH3ByQQd0zO2Q48G3X9oh4IGNy5oChAnBkwwzlp9/eHjg+D9yjNP3ZfxX9xC3e1H2JF9/J600Q047NUYrylQsxzpxXDkk6xkRJyJ6/55tNzGIekNJie3FIcTV14ZCKWCLOCRNwSdPZqvWZ7wyR+ap9hIJ/xyw6A1P2OgJwC0yUzw7L48gQRj3Nhl6LSGYcrjE6XjiXmiOt5Tu+eUlWk9A3vCSxFHO+QsjHowe6sm+BOlXodCjrgycpolb9eqBUc9T4VxwU+TZ9E6z+g=", "certificate": "-----BEGIN CERTIFICATE-----\r\nMIIEvjCCAqagAwIBAgIUc\/0FxYrsgSs9rDxp03EJmbjN0NwwDQYJKoZIhvcNAQEF\r\nBQAwIzEhMB8GA1UECgwYb3duQ2xvdWQgQ29kZSBTaWduaW5nIENBMB4XDTE1MTEw\r\nMzIxMDMzM1oXDTE2MTEwMzIxMDMzM1owDzENMAsGA1UEAwwEY29yZTCCAiIwDQYJ\r\nKoZIhvcNAQEBBQADggIPADCCAgoCggIBALb6EgHpkAqZbO5vRO8XSh7G7XGWHw5s\r\niOf4RwPXR6SE9bWZEm\/b72SfWk\/\/J6AbrD8WiOzBuT\/ODy6k5T1arEdHO+Pux0W1\r\nMxYJJI4kH74KKgMpC0SB0Rt+8WrMqV1r3hhJ46df6Xr\/xolP3oD+eLbShPcblhdS\r\nVtkZEkoev8Sh6L2wDCeHDyPxzvj1w2dTdGVO9Kztn0xIlyfEBakqvBWtcxyi3Ln0\r\nklnxlMx3tPDUE4kqvpia9qNiB1AN2PV93eNr5\/2riAzIssMFSCarWCx0AKYb54+d\r\nxLpcYFyqPJ0ydBCkF78DD45RCZet6PNYkdzgbqlUWEGGomkuDoJbBg4wzgzO0D77\r\nH87KFhYW8tKFFvF1V3AHl\/sFQ9tDHaxM9Y0pZ2jPp\/ccdiqnmdkBxBDqsiRvHvVB\r\nCn6qpb4vWGFC7vHOBfYspmEL1zLlKXZv3ezMZEZw7O9ZvUP3VO\/wAtd2vUW8UFiq\r\ns2v1QnNLN6jNh51obcwmrBvWhJy9vQIdtIjQbDxqWTHh1zUSrw9wrlklCBZ\/zrM0\r\ni8nfCFwTxWRxp3H9KoECzO\/zS5R5KIS7s3\/wq\/w9T2Ie4rcecgXwDizwnn0C\/aKc\r\nbDIjujpL1s9HO05pcD\/V3wKcPZ1izymBkmMyIbL52iRVN5FTVHeZdXPpFuq+CTQJ\r\nQ238lC+A\/KOVAgMBAAEwDQYJKoZIhvcNAQEFBQADggIBAGoKTnh8RfJV4sQItVC2\r\nAvfJagkrIqZ3iiQTUBQGTKBsTnAqE1H7QgUSV9vSd+8rgvHkyZsRjmtyR1e3A6Ji\r\noNCXUbExC\/0iCPUqdHZIVb+Lc\/vWuv4ByFMybGPydgtLoEUX2ZrKFWmcgZFDUSRd\r\n9Uj26vtUhCC4bU4jgu6hIrR9IuxOBLQUxGTRZyAcXvj7obqRAEZwFAKQgFpfpqTb\r\nH+kjcbZSaAlLVSF7vBc1syyI8RGYbqpwvtREqJtl5IEIwe6huEqJ3zPnlP2th\/55\r\ncf3Fovj6JJgbb9XFxrdnsOsDOu\/tpnaRWlvv5ib4+SzG5wWFT5UUEo4Wg2STQiiX\r\nuVSRQxK1LE1yg84bs3NZk9FSQh4B8vZVuRr5FaJsZZkwlFlhRO\/\/+TJtXRbyNgsf\r\noMRZGi8DLGU2SGEAHcRH\/QZHq\/XDUWVzdxrSBYcy7GSpT7UDVzGv1rEJUrn5veP1\r\n0KmauAqtiIaYRm4f6YBsn0INcZxzIPZ0p8qFtVZBPeHhvQtvOt0iXI\/XUxEWOa2F\r\nK2EqhErgMK\/N07U1JJJay5tYZRtvkGq46oP\/5kQG8hYST0MDK6VihJoPpvCmAm4E\r\npEYKQ96x6A4EH9Y9mZlYozH\/eqmxPbTK8n89\/p7Ydun4rI+B2iiLnY8REWWy6+UQ\r\nV204fGUkJqW5CrKy3P3XvY9X\r\n-----END CERTIFICATE-----" }'; $this->environmentHelper @@ -688,10 +688,10 @@ public function testVerifyCoreSignatureWithValidModifiedHtaccessSignatureData(): ->willReturn(\OC::$SERVERROOT . '/tests/data/integritycheck/htaccessWithValidModifiedContent'); $signatureDataFile = '{ "hashes": { - ".htaccess": "7e6a7a4d8ee4f3fbc45dd579407c643471575a9d127d1c75f6d0a49e80766c3c587104b2139ef76d2a4bffce3f45777900605aaa49519c9532909b71e5030227", + ".htaccess": "b1a6a9fbb85417f3f461e654f1a8ae56a131fe54e4257b2b8b7ba6b3fedd55b83c0df20550cd6c52bd3a96d148a5a3c4ea24d99dca5d45a644491e56ad99df8e", "subfolder\/.htaccess": "2c57b1e25050e11dc3ae975832f378c452159f7b69f818e47eeeafadd6ba568517461dcb4d843b90b906cd7c89d161bc1b89dff8e3ae0eb6f5088508c47befd1" }, - "signature": "YVwQvl9Dh8UebCumfgzFxfz3NiZJLmYG8oJVTfEBhulI4KXBnTG1jZTprf4XxG2XIriEYAZXsoXpu9xWsUFe9QfdncwoEpqJtGq7l6aVDTofX5Be5b03MQFJr4cflgllqW77QZ84D9O9qWF\/vNDAofXcwrzT04CxLDhyQgTCgYUnRjG9pnuP\/gtbDKbTjRvxhTyfg3T0Phv1+XAvpTPnH2q5A+1+LmiqziUJ1sMipsKo+jQP614eCi9qjmqhHIgLRgcuOBvsi4g5WUcdcAIZ6qLt5gm2Y3r6rKNVchosU9ZydMUTfjuejDbVwE2fNH5UUnV57fQBxwg9CfX7iFHqKv1bfv5Zviu12paShgWCB12uR3iH\/3lmTJn8K5Xqit3G4eymFaJ5IChdUThBp\/jhQSI2r8sPcZDYSJ\/UZKuFnezFdKhEBd5hMXe8aKAd6ijGDjLARksFuqpi1sS8llC5K1Q+DzktSL\/o64TY4Vuvykiwe\/BAk2SkL9voOtrvU7vfDBcuCPbDJnSBBC0ESpcXeClTBIn6xZ9WaxqoS7sinE\/kUwtWsRd04I7d79\/ouotyNb+mBhTuRsZT12p\/gn4JHXXNUAIpTwchYzGxbfNJ4kxnYBFZWVmvsSqOLFZu1yi5BP3ktA9yhFyWIa5659azRFEKRdXpVHtQVa4IgdhxEqA=", + "signature": "nkCCG4hEtRyIo7rxnBBTCYtb4aIoCZA/bgbi8OrsKA9ZcZBEWqpSjWMvl9K88e+Ci/HIynv3Y/JdsN4OABRnNtyTMgsVuzqqK+mYYTFlzmRBmCNJjHSjVgfxQ6vhlYGwTGJWuhxFY5sv/dolx2G3TP7fJT71XdWI/wPkoCoQpDCx4ciFHJMAX9cuHkqpfIJXzCP9P+zt5DJjm9UHGII9DJxu/I47ujTqYIgo6QyGZqp91ydy1wkM7xcLt5koTRQRfR8xtyFFEuk3FvNgI/Do+55aClpksae2wMxDfThe37Yya5ibIlTmeYUDWLa8zv2SdVVvsGUcPewICOElAIkIWo69GFvJxW4vroal42/EDB9WQxUG/2uIksQEsDQmKCc0h6pyTViP47AG+6lUa59HMvzNGxuHjH3ByQQd0zO2Q48G3X9oh4IGNy5oChAnBkwwzlp9/eHjg+D9yjNP3ZfxX9xC3e1H2JF9/J600Q047NUYrylQsxzpxXDkk6xkRJyJ6/55tNzGIekNJie3FIcTV14ZCKWCLOCRNwSdPZqvWZ7wyR+ap9hIJ/xyw6A1P2OgJwC0yUzw7L48gQRj3Nhl6LSGYcrjE6XjiXmiOt5Tu+eUlWk9A3vCSxFHO+QsjHowe6sm+BOlXodCjrgycpolb9eqBUc9T4VxwU+TZ9E6z+g=", "certificate": "-----BEGIN CERTIFICATE-----\r\nMIIEvjCCAqagAwIBAgIUc\/0FxYrsgSs9rDxp03EJmbjN0NwwDQYJKoZIhvcNAQEF\r\nBQAwIzEhMB8GA1UECgwYb3duQ2xvdWQgQ29kZSBTaWduaW5nIENBMB4XDTE1MTEw\r\nMzIxMDMzM1oXDTE2MTEwMzIxMDMzM1owDzENMAsGA1UEAwwEY29yZTCCAiIwDQYJ\r\nKoZIhvcNAQEBBQADggIPADCCAgoCggIBALb6EgHpkAqZbO5vRO8XSh7G7XGWHw5s\r\niOf4RwPXR6SE9bWZEm\/b72SfWk\/\/J6AbrD8WiOzBuT\/ODy6k5T1arEdHO+Pux0W1\r\nMxYJJI4kH74KKgMpC0SB0Rt+8WrMqV1r3hhJ46df6Xr\/xolP3oD+eLbShPcblhdS\r\nVtkZEkoev8Sh6L2wDCeHDyPxzvj1w2dTdGVO9Kztn0xIlyfEBakqvBWtcxyi3Ln0\r\nklnxlMx3tPDUE4kqvpia9qNiB1AN2PV93eNr5\/2riAzIssMFSCarWCx0AKYb54+d\r\nxLpcYFyqPJ0ydBCkF78DD45RCZet6PNYkdzgbqlUWEGGomkuDoJbBg4wzgzO0D77\r\nH87KFhYW8tKFFvF1V3AHl\/sFQ9tDHaxM9Y0pZ2jPp\/ccdiqnmdkBxBDqsiRvHvVB\r\nCn6qpb4vWGFC7vHOBfYspmEL1zLlKXZv3ezMZEZw7O9ZvUP3VO\/wAtd2vUW8UFiq\r\ns2v1QnNLN6jNh51obcwmrBvWhJy9vQIdtIjQbDxqWTHh1zUSrw9wrlklCBZ\/zrM0\r\ni8nfCFwTxWRxp3H9KoECzO\/zS5R5KIS7s3\/wq\/w9T2Ie4rcecgXwDizwnn0C\/aKc\r\nbDIjujpL1s9HO05pcD\/V3wKcPZ1izymBkmMyIbL52iRVN5FTVHeZdXPpFuq+CTQJ\r\nQ238lC+A\/KOVAgMBAAEwDQYJKoZIhvcNAQEFBQADggIBAGoKTnh8RfJV4sQItVC2\r\nAvfJagkrIqZ3iiQTUBQGTKBsTnAqE1H7QgUSV9vSd+8rgvHkyZsRjmtyR1e3A6Ji\r\noNCXUbExC\/0iCPUqdHZIVb+Lc\/vWuv4ByFMybGPydgtLoEUX2ZrKFWmcgZFDUSRd\r\n9Uj26vtUhCC4bU4jgu6hIrR9IuxOBLQUxGTRZyAcXvj7obqRAEZwFAKQgFpfpqTb\r\nH+kjcbZSaAlLVSF7vBc1syyI8RGYbqpwvtREqJtl5IEIwe6huEqJ3zPnlP2th\/55\r\ncf3Fovj6JJgbb9XFxrdnsOsDOu\/tpnaRWlvv5ib4+SzG5wWFT5UUEo4Wg2STQiiX\r\nuVSRQxK1LE1yg84bs3NZk9FSQh4B8vZVuRr5FaJsZZkwlFlhRO\/\/+TJtXRbyNgsf\r\noMRZGi8DLGU2SGEAHcRH\/QZHq\/XDUWVzdxrSBYcy7GSpT7UDVzGv1rEJUrn5veP1\r\n0KmauAqtiIaYRm4f6YBsn0INcZxzIPZ0p8qFtVZBPeHhvQtvOt0iXI\/XUxEWOa2F\r\nK2EqhErgMK\/N07U1JJJay5tYZRtvkGq46oP\/5kQG8hYST0MDK6VihJoPpvCmAm4E\r\npEYKQ96x6A4EH9Y9mZlYozH\/eqmxPbTK8n89\/p7Ydun4rI+B2iiLnY8REWWy6+UQ\r\nV204fGUkJqW5CrKy3P3XvY9X\r\n-----END CERTIFICATE-----" }'; $this->fileAccessHelper