1
0
Fork 0
mirror of https://gitlab.alpinelinux.org/alpine/aports.git synced 2025-07-12 18:59:50 +03:00

testing/php81: security upgrade to 8.1.33

- CVE-2025-1220
- CVE-2025-1735
- CVE-2025-6491
This commit is contained in:
Andy Postnikov 2025-07-02 18:26:41 +02:00
parent 4b30c42c4d
commit 97d00201cd
No known key found for this signature in database
3 changed files with 8 additions and 360 deletions

View file

@ -26,8 +26,8 @@
pkgname=php81
_pkgreal=php
pkgver=8.1.32
pkgrel=1
pkgver=8.1.33
pkgrel=0
_apiver=20210902
_suffix=${pkgname#php}
# Is this package the default (latest) PHP version?
@ -121,8 +121,6 @@ source="$_pkgreal-$pkgver.tar.xz::https://php.net/distributions/$_pkgreal-$pkgve
fix-icu74.patch
loongarch64-support-for-fibers.patch
fix-pear.patch
ext-intl-level-up-c++-runtime-std-for-icu.patch
Adapt-ext-intl-tests-for-ICU-75.1-and-76.1.patch
"
builddir="$srcdir/$_pkgreal-$pkgver"
@ -196,6 +194,10 @@ subpackages="$subpackages $pkgname-common::noarch"
subpackages="$subpackages $pkgname-litespeed"
# secfixes:
# 8.1.33-r0:
# - CVE-2025-1220
# - CVE-2025-1735
# - CVE-2025-6491
# 8.1.32-r0:
# - CVE-2025-1217
# - CVE-2025-1219
@ -298,6 +300,7 @@ _build() {
export CC=clang-$_clang_ver
export CXX=clang++-$_clang_ver
PHP_BUILD_PROVIDER="Alpine Linux aports" \
EXTENSION_DIR=/$_extension_dir ./configure \
--build=$CBUILD \
--host=$CHOST \
@ -673,7 +676,7 @@ _extensions_by_load_order() {
}
sha512sums="
d8084415ead65d685c68c4264e793abb1322b01e120c2ac09c2e33889a13513fb42401621fcb702e36bc1a3239b317a4c10e20c676bb19eb05749a6d6e646318 php-8.1.32.tar.xz
657b5e3689edcb83d55c1e3c4403e714dd3f29824a678da622678fff3bfc9d333b5de07e136d856a4e6bc981f104c999797500046df7fefdf3880e76574d8880 php-8.1.33.tar.xz
7dc9f55b12998355a6a6b5cf277285058e66928215f8d0109448d06fb696a74c674f83d18a81bf03f4f0bee06e77979e9a4ee5c81c7fdebff91447f8e697cc69 php81-fpm.initd
98bb27864f1ece80fef18cb286885c8c18de8f9d1076507b6a24df07e33aa400623b90401375e7ebe55d9ff802069d281642ec7d3a58ef8727121aabe7643241 php81-fpm.logrotate
2e3b22b4adbc81c6120757095c89e56642f3e8bf7724af2926f2667759ef082cdcff416334aad87f704a61fcb5b2c11830f17759ac771a3dd4e47d9bc5c7cf72 php81-module.conf
@ -693,6 +696,4 @@ f43ab399c3b4a2b9a3a329acd32d9cbc690cad697dd0a0e87f3d654028b88af7dd1cd80cbf970c6f
16d283ac2373442f2fbbca4968df92e0114454c7645a797f1f04af27e546293f3312d45aef049357057facd4fb62339ebfe7f59e65d4278910c4195d873955d1 fix-icu74.patch
517441fdf14b7855b1843bd0d1c86126017af7a340fbf7177202db7c9e67912332abdb62e7477f45e7922c910672396ba4f953eb7dc052ed06624c682bd12791 loongarch64-support-for-fibers.patch
39b8a84098db50d76cac51438b869cc9c4f88881948bc0bac590f811889f6ca974b31153561a22642810d81ccb92d301580032d08fe911472b3f0350eae84450 fix-pear.patch
6050fe5d7c2095face8048f049060a8dc8eb6b7ba462db4590542f9e6ffab54ab3106ed6c091542252c0aa8edfe8a55a7f7ccc186c56ee672eaeeea5ed8dc87c ext-intl-level-up-c++-runtime-std-for-icu.patch
7e5f052119197d6056d5e57c864e614674727077f222d5e538a026c8f2997b2ecd78cd655a23c1d727360c386995fef84b9c64bf43780fcc092df59543c41580 Adapt-ext-intl-tests-for-ICU-75.1-and-76.1.patch
"

View file

@ -1,304 +0,0 @@
From f725f504e85643525f13c6bb4207f38af9d1a232 Mon Sep 17 00:00:00 2001
From: "Christoph M. Becker" <cmbecker69@gmx.de>
Date: Thu, 14 Nov 2024 01:18:53 +0100
Subject: [PATCH] Adapt ext/intl tests for ICU 75.1 and 76.1
Closes GH-16788.
---
ext/intl/tests/bug62070_3.phpt | 1 +
ext/intl/tests/bug62070_icu76_1.phpt | 17 ++++
.../tests/collator_get_sort_key_variant7.phpt | 1 +
...collator_get_sort_key_variant_icu76_1.phpt | 97 +++++++++++++++++++
ext/intl/tests/locale_get_display_name8.phpt | 18 ++--
.../tests/locale_get_display_variant2.phpt | 18 ++--
.../tests/timezone_IDforWindowsID_basic2.phpt | 1 +
...timezone_IDforWindowsID_basic_icu76_1.phpt | 44 +++++++++
8 files changed, 179 insertions(+), 18 deletions(-)
create mode 100644 ext/intl/tests/bug62070_icu76_1.phpt
create mode 100644 ext/intl/tests/collator_get_sort_key_variant_icu76_1.phpt
create mode 100644 ext/intl/tests/timezone_IDforWindowsID_basic_icu76_1.phpt
diff --git a/ext/intl/tests/bug62070_3.phpt b/ext/intl/tests/bug62070_3.phpt
index 08c1bbf45f8ba..60e0593acfd3d 100644
--- a/ext/intl/tests/bug62070_3.phpt
+++ b/ext/intl/tests/bug62070_3.phpt
@@ -4,6 +4,7 @@ Bug #62070: Collator::getSortKey() returns garbage
intl
--SKIPIF--
<?php if (version_compare(INTL_ICU_VERSION, '62.1') < 0) die('skip for ICU >= 62.1'); ?>
+<?php if (version_compare(INTL_ICU_VERSION, '76.1') >= 0) die('skip for ICU < 76.1'); ?>
--FILE--
<?php
$s1 = 'Hello';
diff --git a/ext/intl/tests/bug62070_icu76_1.phpt b/ext/intl/tests/bug62070_icu76_1.phpt
new file mode 100644
index 0000000000000..6071679b6b31d
--- /dev/null
+++ b/ext/intl/tests/bug62070_icu76_1.phpt
@@ -0,0 +1,17 @@
+--TEST--
+Bug #62070: Collator::getSortKey() returns garbage
+--EXTENSIONS--
+intl
+--SKIPIF--
+<?php if (version_compare(INTL_ICU_VERSION, '76.1') < 0) die('skip for ICU >= 76.1'); ?>
+--FILE--
+<?php
+$s1 = 'Hello';
+
+$coll = collator_create('en_US');
+$res = collator_get_sort_key($coll, $s1);
+
+echo urlencode($res);
+?>
+--EXPECT--
+93AAG%01%09%01%DC%08
diff --git a/ext/intl/tests/collator_get_sort_key_variant7.phpt b/ext/intl/tests/collator_get_sort_key_variant7.phpt
index 44be0bea3fd65..f342a413be5cf 100644
--- a/ext/intl/tests/collator_get_sort_key_variant7.phpt
+++ b/ext/intl/tests/collator_get_sort_key_variant7.phpt
@@ -4,6 +4,7 @@ collator_get_sort_key() icu >= 62.1
intl
--SKIPIF--
<?php if (version_compare(INTL_ICU_VERSION, '62.1') < 0) die('skip for ICU >= 62.1'); ?>
+<?php if (version_compare(INTL_ICU_VERSION, '76.1') >= 0) die('skip for ICU < 76.1'); ?>
--FILE--
<?php
diff --git a/ext/intl/tests/collator_get_sort_key_variant_icu76_1.phpt b/ext/intl/tests/collator_get_sort_key_variant_icu76_1.phpt
new file mode 100644
index 0000000000000..8c000c309403e
--- /dev/null
+++ b/ext/intl/tests/collator_get_sort_key_variant_icu76_1.phpt
@@ -0,0 +1,97 @@
+--TEST--
+collator_get_sort_key() icu >= 62.1
+--EXTENSIONS--
+intl
+--SKIPIF--
+<?php if (version_compare(INTL_ICU_VERSION, '76.1') < 0) die('skip for ICU >= 76.1'); ?>
+--FILE--
+<?php
+
+/*
+ * Get sort keys using various locales
+ */
+function sort_arrays( $locale, $data )
+{
+ $res_str = '';
+
+ $coll = ut_coll_create( $locale );
+
+ foreach($data as $value) {
+ $res_val = ut_coll_get_sort_key( $coll, $value );
+ $res_str .= "source: ".$value."\n".
+ "key: ".bin2hex($res_val)."\n";
+ }
+
+ return $res_str;
+}
+
+
+function ut_main()
+{
+ $res_str = '';
+
+ // Regular strings keys
+ $test_params = array(
+ 'abc', 'abd', 'aaa',
+ 'аа', 'а', 'z',
+ '', '3',
+ 'y' , 'i' , 'k'
+ );
+
+ $res_str .= sort_arrays( 'en_US', $test_params );
+
+ // Sort a non-ASCII array using ru_RU locale.
+ $test_params = array(
+ 'абг', 'абв', 'жжж', 'эюя'
+ );
+
+ $res_str .= sort_arrays( 'ru_RU', $test_params );
+
+ // Sort an array using Lithuanian locale.
+ $res_str .= sort_arrays( 'lt_LT', $test_params );
+
+ return $res_str . "\n";
+}
+
+include_once( 'ut_common.inc' );
+ut_run();
+?>
+--EXPECT--
+source: abc
+key: 2b2d2f01070107
+source: abd
+key: 2b2d3101070107
+source: aaa
+key: 2b2b2b01070107
+source: аа
+key: 62060601060106
+source: а
+key: 620601050105
+source: z
+key: 5d01050105
+source:
+key: 0101
+source: 3
+key: 1801050105
+source: y
+key: 5b01050105
+source: i
+key: 3b01050105
+source: k
+key: 3f01050105
+source: абг
+key: 28060c1001070107
+source: абв
+key: 28060c0e01070107
+source: жжж
+key: 282c2c2c01070107
+source: эюя
+key: 28eef0f401070107
+source: абг
+key: 62060c1001070107
+source: абв
+key: 62060c0e01070107
+source: жжж
+key: 622c2c2c01070107
+source: эюя
+key: 62eef0f401070107
diff --git a/ext/intl/tests/locale_get_display_name8.phpt b/ext/intl/tests/locale_get_display_name8.phpt
index b6b855c6d8eca..e8c1ed958ac1c 100644
--- a/ext/intl/tests/locale_get_display_name8.phpt
+++ b/ext/intl/tests/locale_get_display_name8.phpt
@@ -317,14 +317,14 @@ disp_locale=fr : display_name=anglais #États-Unis, attribute=islamcal#
disp_locale=de : display_name=Englisch #Vereinigte Staaten, attribute=islamcal#
-----------------
locale='zh-CN-a-myExt-x-private'
-disp_locale=en : display_name=Chinese #China, a=myext, Private-Use=private#
-disp_locale=fr : display_name=chinois #Chine, a=myext, usage privé=private#
-disp_locale=de : display_name=Chinesisch #China, a=myext, Privatnutzung=private#
+disp_locale=en : display_name=Chinese #China(, A_MYEXT_X_PRIVATE)?, a=myext, Private-Use=private#
+disp_locale=fr : display_name=chinois #Chine(, A_MYEXT_X_PRIVATE)?, a=myext, usage privé=private#
+disp_locale=de : display_name=Chinesisch #China(, A_MYEXT_X_PRIVATE)?, a=myext, Privatnutzung=private#
-----------------
locale='en-a-myExt-b-another'
-disp_locale=en : display_name=English #a=myext, b=another#
-disp_locale=fr : display_name=anglais #a=myext, b=another#
-disp_locale=de : display_name=Englisch #a=myext, b=another#
+disp_locale=en : display_name=English #(A_MYEXT_B_ANOTHER, )?a=myext, b=another#
+disp_locale=fr : display_name=anglais #(A_MYEXT_B_ANOTHER, )?a=myext, b=another#
+disp_locale=de : display_name=Englisch #(A_MYEXT_B_ANOTHER, )?a=myext, b=another#
-----------------
locale='de-419-DE'
disp_locale=en : display_name=German #Latin America, DE#
@@ -337,7 +337,7 @@ disp_locale=fr : display_name=a #Allemagne#
disp_locale=de : display_name=a #Deutschland#
-----------------
locale='ar-a-aaa-b-bbb-a-ccc'
-disp_locale=en : display_name=Arabic #a=aaa, b=bbb#
-disp_locale=fr : display_name=arabe #a=aaa, b=bbb#
-disp_locale=de : display_name=Arabisch #a=aaa, b=bbb#
+disp_locale=en : display_name=Arabic #(A_AAA_B_BBB_A_CCC, )?a=aaa, b=bbb#
+disp_locale=fr : display_name=arabe #(A_AAA_B_BBB_A_CCC, )?a=aaa, b=bbb#
+disp_locale=de : display_name=Arabisch #(A_AAA_B_BBB_A_CCC, )?a=aaa, b=bbb#
-----------------
diff --git a/ext/intl/tests/locale_get_display_variant2.phpt b/ext/intl/tests/locale_get_display_variant2.phpt
index a743ed5ea3b85..e56154902dde9 100644
--- a/ext/intl/tests/locale_get_display_variant2.phpt
+++ b/ext/intl/tests/locale_get_display_variant2.phpt
@@ -248,14 +248,14 @@ disp_locale=fr : display_variant=
disp_locale=de : display_variant=
-----------------
locale='zh-CN-a-myExt-x-private'
-disp_locale=en : display_variant=
-disp_locale=fr : display_variant=
-disp_locale=de : display_variant=
+disp_locale=en : display_variant=(A_MYEXT_X_PRIVATE)?
+disp_locale=fr : display_variant=(A_MYEXT_X_PRIVATE)?
+disp_locale=de : display_variant=(A_MYEXT_X_PRIVATE)?
-----------------
locale='en-a-myExt-b-another'
-disp_locale=en : display_variant=(MYEXT_B_ANOTHER)?
-disp_locale=fr : display_variant=(MYEXT_B_ANOTHER)?
-disp_locale=de : display_variant=(MYEXT_B_ANOTHER)?
+disp_locale=en : display_variant=((A_)?MYEXT_B_ANOTHER)?
+disp_locale=fr : display_variant=((A_)?MYEXT_B_ANOTHER)?
+disp_locale=de : display_variant=((A_)?MYEXT_B_ANOTHER)?
-----------------
locale='de-419-DE'
disp_locale=en : display_variant=DE
@@ -268,7 +268,7 @@ disp_locale=fr : display_variant=
disp_locale=de : display_variant=
-----------------
locale='ar-a-aaa-b-bbb-a-ccc'
-disp_locale=en : display_variant=(AAA_B_BBB_A_CCC)?
-disp_locale=fr : display_variant=(AAA_B_BBB_A_CCC)?
-disp_locale=de : display_variant=(AAA_B_BBB_A_CCC)?
+disp_locale=en : display_variant=((A_)?AAA_B_BBB_A_CCC)?
+disp_locale=fr : display_variant=((A_)?AAA_B_BBB_A_CCC)?
+disp_locale=de : display_variant=((A_)?AAA_B_BBB_A_CCC)?
-----------------
diff --git a/ext/intl/tests/timezone_IDforWindowsID_basic2.phpt b/ext/intl/tests/timezone_IDforWindowsID_basic2.phpt
index aeb9b16899157..60e6f73e37970 100644
--- a/ext/intl/tests/timezone_IDforWindowsID_basic2.phpt
+++ b/ext/intl/tests/timezone_IDforWindowsID_basic2.phpt
@@ -4,6 +4,7 @@ IntlTimeZone::getIDForWindowsID basic test
intl
--SKIPIF--
<?php if (version_compare(INTL_ICU_VERSION, '58.1') < 0) die('skip for ICU >= 58.1'); ?>
+<?php if (version_compare(INTL_ICU_VERSION, '76.1') >= 0) die('skip for ICU <= 76.1'); ?>
--FILE--
<?php
diff --git a/ext/intl/tests/timezone_IDforWindowsID_basic_icu76_1.phpt b/ext/intl/tests/timezone_IDforWindowsID_basic_icu76_1.phpt
new file mode 100644
index 0000000000000..96de341974b1a
--- /dev/null
+++ b/ext/intl/tests/timezone_IDforWindowsID_basic_icu76_1.phpt
@@ -0,0 +1,44 @@
+--TEST--
+IntlTimeZone::getIDForWindowsID basic test
+--EXTENSIONS--
+intl
+--SKIPIF--
+<?php if (version_compare(INTL_ICU_VERSION, '76.1') < 0) die('skip for ICU >= 76.1'); ?>
+--FILE--
+<?php
+
+$tzs = array(
+ 'Gnomeregan' => array(NULL),
+ 'India Standard Time' => array(NULL),
+ 'Pacific Standard Time' => array('001', 'CA', 'MX', 'US', 'ZZ'),
+ 'Romance Standard Time' => array('001', 'BE', 'DK', 'ES', 'FR'),
+);
+
+foreach ($tzs as $tz => $regions) {
+ echo "** $tz\n";
+ foreach ($regions as $region) {
+ var_dump(IntlTimeZone::getIDForWindowsID($tz, $region));
+ if (intl_get_error_code() != U_ZERO_ERROR) {
+ echo "Error: ", intl_get_error_message(), "\n";
+ }
+ }
+}
+?>
+--EXPECTF--
+** Gnomeregan
+bool(false)
+Error: %snknown windows timezone: U_ILLEGAL_ARGUMENT_ERROR
+** India Standard Time
+string(13) "Asia/Calcutta"
+** Pacific Standard Time
+string(19) "America/Los_Angeles"
+string(17) "America/Vancouver"
+string(19) "America/Los_Angeles"
+string(19) "America/Los_Angeles"
+string(19) "America/Los_Angeles"
+** Romance Standard Time
+string(12) "Europe/Paris"
+string(15) "Europe/Brussels"
+string(17) "Europe/Copenhagen"
+string(13) "Europe/Madrid"
+string(12) "Europe/Paris"

View file

@ -1,49 +0,0 @@
From cc46a4e6b5a413bab3e264c1dcaaf7052f54fbc4 Mon Sep 17 00:00:00 2001
From: David Carlier <devnexen@gmail.com>
Date: Sat, 17 Feb 2024 21:38:21 +0000
Subject: [PATCH] ext/intl: level up c++ runtime std for icu 74 and onwards.
to align with what is required to build icu 74 itself.
Close GH-14002
---
NEWS | 3 +++
ext/intl/config.m4 | 11 ++++++++++-
2 files changed, 13 insertions(+), 1 deletion(-)
diff --git a/NEWS b/NEWS
index bcff2820ded76..e5f8e3eba5ff3 100644
--- a/NEWS
+++ b/NEWS
@@ -18,6 +18,9 @@ PHP NEWS
. Fixed bug GH-13563 (Setting bool values via env in FPM config fails).
(Jakub Zelenka)
+- Intl:
+ . Fixed build for icu 74 and onwards. (dunglas)
+
- MySQLnd:
. Fix shift out of bounds on 32-bit non-fast-path platforms. (nielsdos)
diff --git a/ext/intl/config.m4 b/ext/intl/config.m4
index dd687bcd97de3..48f5147ca7bbf 100644
--- a/ext/intl/config.m4
+++ b/ext/intl/config.m4
@@ -80,7 +80,16 @@ if test "$PHP_INTL" != "no"; then
breakiterator/codepointiterator_methods.cpp"
PHP_REQUIRE_CXX()
- PHP_CXX_COMPILE_STDCXX(11, mandatory, PHP_INTL_STDCXX)
+
+ AC_MSG_CHECKING([if intl requires -std=gnu++17])
+ AS_IF([test "$PKG_CONFIG icu-uc --atleast-version=74"],[
+ AC_MSG_RESULT([yes])
+ PHP_CXX_COMPILE_STDCXX(17, mandatory, PHP_INTL_STDCXX)
+ ],[
+ AC_MSG_RESULT([no])
+ PHP_CXX_COMPILE_STDCXX(11, mandatory, PHP_INTL_STDCXX)
+ ])
+
PHP_INTL_CXX_FLAGS="$INTL_COMMON_FLAGS $PHP_INTL_STDCXX $ICU_CXXFLAGS"
case $host_alias in
*cygwin*) PHP_INTL_CXX_FLAGS="$PHP_INTL_CXX_FLAGS -D_POSIX_C_SOURCE=200809L"