diff options
Diffstat (limited to 'dev-lang/php/files')
3 files changed, 0 insertions, 570 deletions
diff --git a/dev-lang/php/files/php-7.2.13-intl-use-icu-namespace.patch b/dev-lang/php/files/php-7.2.13-intl-use-icu-namespace.patch deleted file mode 100644 index b5d2b473f1aa..000000000000 --- a/dev-lang/php/files/php-7.2.13-intl-use-icu-namespace.patch +++ /dev/null @@ -1,379 +0,0 @@ -Based on the following upstream commits: - -https://github.com/php/php-src/commit/8d35a423838eb462cd39ee535c5d003073cc5f22 -https://github.com/php/php-src/commit/d8200e48857aeaf09f7127751efc5632ef7660a7 -https://github.com/php/php-src/commit/9a8e7b571896f39f83cb000fdb7c466b6d328d52 - ---- a/ext/intl/breakiterator/breakiterator_class.cpp -+++ b/ext/intl/breakiterator/breakiterator_class.cpp -@@ -38,6 +38,7 @@ extern "C" { - } - - using PHP::CodePointBreakIterator; -+using icu::RuleBasedBreakIterator; - - /* {{{ Global variables */ - zend_class_entry *BreakIterator_ce_ptr; ---- a/ext/intl/breakiterator/breakiterator_class.h -+++ b/ext/intl/breakiterator/breakiterator_class.h -@@ -26,6 +26,8 @@ - - #ifndef USE_BREAKITERATOR_POINTER - typedef void BreakIterator; -+#else -+using icu::BreakIterator; - #endif - - typedef struct { ---- a/ext/intl/breakiterator/breakiterator_methods.cpp -+++ b/ext/intl/breakiterator/breakiterator_methods.cpp -@@ -32,6 +32,8 @@ extern "C" { - } - - using PHP::CodePointBreakIterator; -+using icu::BreakIterator; -+using icu::Locale; - - U_CFUNC PHP_METHOD(BreakIterator, __construct) - { ---- a/ext/intl/breakiterator/codepointiterator_internal.cpp -+++ b/ext/intl/breakiterator/codepointiterator_internal.cpp -@@ -33,6 +33,8 @@ typedef union { - - using namespace PHP; - -+using icu::UCharCharacterIterator; -+ - UOBJECT_DEFINE_RTTI_IMPLEMENTATION(CodePointBreakIterator); - - CodePointBreakIterator::CodePointBreakIterator() ---- a/ext/intl/breakiterator/codepointiterator_internal.h -+++ b/ext/intl/breakiterator/codepointiterator_internal.h -@@ -18,8 +18,11 @@ - #define CODEPOINTITERATOR_INTERNAL_H - - #include <unicode/brkiter.h> -+#include <unicode/unistr.h> - --using U_ICU_NAMESPACE::BreakIterator; -+using icu::BreakIterator; -+using icu::CharacterIterator; -+using icu::UnicodeString; - - namespace PHP { - ---- a/ext/intl/breakiterator/rulebasedbreakiterator_methods.cpp -+++ b/ext/intl/breakiterator/rulebasedbreakiterator_methods.cpp -@@ -26,6 +26,9 @@ extern "C" { - #include "../intl_convertcpp.h" - #include "../intl_common.h" - -+using icu::RuleBasedBreakIterator; -+using icu::Locale; -+ - static inline RuleBasedBreakIterator *fetch_rbbi(BreakIterator_object *bio) { - return (RuleBasedBreakIterator*)bio->biter; - } ---- a/ext/intl/calendar/calendar_class.cpp -+++ b/ext/intl/calendar/calendar_class.cpp -@@ -34,6 +34,9 @@ extern "C" { - #include <assert.h> - } - -+using icu::GregorianCalendar; -+using icu::Locale; -+ - /* {{{ Global variables */ - zend_class_entry *Calendar_ce_ptr; - zend_class_entry *GregorianCalendar_ce_ptr; ---- a/ext/intl/calendar/calendar_class.h -+++ b/ext/intl/calendar/calendar_class.h -@@ -26,6 +26,8 @@ - - #ifndef USE_CALENDAR_POINTER - typedef void Calendar; -+#else -+using icu::Calendar; - #endif - - typedef struct { ---- a/ext/intl/calendar/calendar_methods.cpp -+++ b/ext/intl/calendar/calendar_methods.cpp -@@ -40,6 +40,8 @@ extern "C" { - } - #include "../common/common_enum.h" - -+using icu::Locale; -+ - U_CFUNC PHP_METHOD(IntlCalendar, __construct) - { - zend_throw_exception( NULL, ---- a/ext/intl/calendar/gregoriancalendar_methods.cpp -+++ b/ext/intl/calendar/gregoriancalendar_methods.cpp -@@ -23,6 +23,8 @@ - #include <unicode/locid.h> - #include <unicode/calendar.h> - #include <unicode/gregocal.h> -+#include <unicode/ustring.h> -+ - extern "C" { - #include "../php_intl.h" - #include "../intl_common.h" -@@ -34,6 +36,11 @@ extern "C" { - #include "zend_exceptions.h" - } - -+using icu::GregorianCalendar; -+using icu::Locale; -+using icu::UnicodeString; -+using icu::StringPiece; -+ - static inline GregorianCalendar *fetch_greg(Calendar_object *co) { - return (GregorianCalendar*)co->ucal; - } ---- a/ext/intl/common/common_date.cpp -+++ b/ext/intl/common/common_date.cpp -@@ -27,6 +27,9 @@ extern "C" { - - #include "zend_portability.h" - -+using icu::TimeZone; -+using icu::UnicodeString; -+ - /* {{{ timezone_convert_datetimezone - * The timezone in DateTime and DateTimeZone is not unified. */ - U_CFUNC TimeZone *timezone_convert_datetimezone(int type, ---- a/ext/intl/common/common_date.h -+++ b/ext/intl/common/common_date.h -@@ -28,6 +28,8 @@ U_CDECL_END - - #include <unicode/timezone.h> - -+using icu::TimeZone; -+ - U_CFUNC TimeZone *timezone_convert_datetimezone(int type, void *object, int is_datetime, intl_error *outside_error, const char *func); - U_CFUNC int intl_datetime_decompose(zval *z, double *millis, TimeZone **tz, - intl_error *err, const char *func); ---- a/ext/intl/common/common_enum.h -+++ b/ext/intl/common/common_enum.h -@@ -75,6 +75,7 @@ U_CFUNC zval *zoi_with_current_get_current_data(zend_object_iterator *iter); - U_CFUNC void zoi_with_current_invalidate_current(zend_object_iterator *iter); - - #ifdef __cplusplus -+using icu::StringEnumeration; - U_CFUNC void IntlIterator_from_StringEnumeration(StringEnumeration *se, zval *object); - #endif - ---- a/ext/intl/converter/converter.c -+++ b/ext/intl/converter/converter.c -@@ -18,6 +18,8 @@ - #include "zend_exceptions.h" - - #include <unicode/utypes.h> -+#include <unicode/utf8.h> -+#include <unicode/utf16.h> - #include <unicode/ucnv.h> - #include <unicode/ustring.h> - ---- a/ext/intl/dateformat/dateformat_format_object.cpp -+++ b/ext/intl/dateformat/dateformat_format_object.cpp -@@ -33,6 +33,12 @@ extern "C" { - #include "../common/common_date.h" - } - -+using icu::Locale; -+using icu::DateFormat; -+using icu::GregorianCalendar; -+using icu::StringPiece; -+using icu::SimpleDateFormat; -+ - static const DateFormat::EStyle valid_styles[] = { - DateFormat::kNone, - DateFormat::kFull, ---- a/ext/intl/dateformat/dateformat_helpers.cpp -+++ b/ext/intl/dateformat/dateformat_helpers.cpp -@@ -28,6 +28,8 @@ extern "C" { - #include "../calendar/calendar_class.h" - } - -+using icu::GregorianCalendar; -+ - int datefmt_process_calendar_arg(zval* calendar_zv, - Locale const& locale, - const char *func_name, ---- a/ext/intl/dateformat/dateformat_helpers.h -+++ b/ext/intl/dateformat/dateformat_helpers.h -@@ -22,11 +22,16 @@ - #endif - - #include <unicode/calendar.h> -+#include <unicode/datefmt.h> - - extern "C" { - #include "../php_intl.h" - } - -+using icu::Locale; -+using icu::Calendar; -+using icu::DateFormat; -+ - int datefmt_process_calendar_arg(zval* calendar_zv, - Locale const& locale, - const char *func_name, ---- a/ext/intl/grapheme/grapheme_string.c -+++ b/ext/intl/grapheme/grapheme_string.c -@@ -24,6 +24,7 @@ - #include "grapheme_util.h" - - #include <unicode/utypes.h> -+#include <unicode/utf8.h> - #include <unicode/ucol.h> - #include <unicode/ustring.h> - #include <unicode/ubrk.h> -@@ -834,10 +835,10 @@ PHP_FUNCTION(grapheme_extract) - pstr = str + start; - - /* just in case pstr points in the middle of a character, move forward to the start of the next char */ -- if ( !UTF8_IS_SINGLE(*pstr) && !U8_IS_LEAD(*pstr) ) { -- char *str_end = str + str_len; -+ if ( !U8_IS_SINGLE(*pstr) && !U8_IS_LEAD(*pstr) ) { -+ unsigned char *str_end = str + str_len; - -- while ( !UTF8_IS_SINGLE(*pstr) && !U8_IS_LEAD(*pstr) ) { -+ while ( !U8_IS_SINGLE(*pstr) && !U8_IS_LEAD(*pstr) ) { - pstr++; - if ( pstr >= str_end ) { - intl_error_set( NULL, U_ILLEGAL_ARGUMENT_ERROR, ---- a/ext/intl/intl_convertcpp.h -+++ b/ext/intl/intl_convertcpp.h -@@ -26,6 +26,8 @@ - #include <unicode/unistr.h> - #include <zend_types.h> - -+using icu::UnicodeString; -+ - int intl_stringFromChar(UnicodeString &ret, char *str, size_t str_len, UErrorCode *status); - - zend_string* intl_charFromString(const UnicodeString &from, UErrorCode *status); ---- a/ext/intl/msgformat/msgformat_helpers.cpp -+++ b/ext/intl/msgformat/msgformat_helpers.cpp -@@ -78,6 +78,16 @@ MessageFormatAdapter::getMessagePattern(MessageFormat* m) { - #endif - U_NAMESPACE_END - -+using icu::Formattable; -+using icu::Format; -+using icu::DateFormat; -+using icu::MessageFormat; -+#ifdef HAS_MESSAGE_PATTERN -+using icu::MessagePattern; -+#endif -+using icu::MessageFormatAdapter; -+using icu::FieldPosition; -+ - U_CFUNC int32_t umsg_format_arg_count(UMessageFormat *fmt) - { - int32_t fmt_count = 0; -@@ -229,15 +239,16 @@ static HashTable *umsg_parse_format(MessageFormatter_object *mfo, - UnicodeString typeString = mp.getSubstring(type_part); - /* This is all based on the rules in the docs for MessageFormat - * @see http://icu-project.org/apiref/icu4c/classMessageFormat.html */ -- if (typeString == "number") { -+#define ASCII_LITERAL(s) UNICODE_STRING(s, sizeof(s)-1) -+ if (typeString == ASCII_LITERAL("number")) { - MessagePattern::Part style_part = mp.getPart(i + 1); /* Not advancing i */ - if (style_part.getType() == UMSGPAT_PART_TYPE_ARG_STYLE) { - UnicodeString styleString = mp.getSubstring(style_part); -- if (styleString == "integer") { -+ if (styleString == ASCII_LITERAL("integer")) { - type = Formattable::kInt64; -- } else if (styleString == "currency") { -+ } else if (styleString == ASCII_LITERAL("currency")) { - type = Formattable::kDouble; -- } else if (styleString == "percent") { -+ } else if (styleString == ASCII_LITERAL("percent")) { - type = Formattable::kDouble; - } else { /* some style invalid/unknown to us */ - type = Formattable::kDouble; -@@ -245,12 +256,13 @@ static HashTable *umsg_parse_format(MessageFormatter_object *mfo, - } else { // if missing style, part, make it a double - type = Formattable::kDouble; - } -- } else if ((typeString == "date") || (typeString == "time")) { -+ } else if ((typeString == ASCII_LITERAL("date")) || (typeString == ASCII_LITERAL("time"))) { - type = Formattable::kDate; -- } else if ((typeString == "spellout") || (typeString == "ordinal") -- || (typeString == "duration")) { -+ } else if ((typeString == ASCII_LITERAL("spellout")) || (typeString == ASCII_LITERAL("ordinal")) -+ || (typeString == ASCII_LITERAL("duration"))) { - type = Formattable::kDouble; - } -+#undef ASCII_LITERAL - } else { - /* If there's no UMSGPAT_PART_TYPE_ARG_TYPE right after a - * UMSGPAT_ARG_TYPE_SIMPLE argument, then the pattern ---- a/ext/intl/normalizer/normalizer_normalize.c -+++ b/ext/intl/normalizer/normalizer_normalize.c -@@ -24,6 +24,7 @@ - #include "normalizer_class.h" - #include "normalizer_normalize.h" - #include "intl_convert.h" -+#include <unicode/utf8.h> - - /* {{{ proto string Normalizer::normalize( string $input [, string $form = FORM_C] ) - * Normalize a string. }}} */ ---- a/ext/intl/timezone/timezone_class.cpp -+++ b/ext/intl/timezone/timezone_class.cpp -@@ -37,6 +37,8 @@ extern "C" { - #include <ext/date/php_date.h> - } - -+using icu::Calendar; -+ - /* {{{ Global variables */ - U_CDECL_BEGIN - zend_class_entry *TimeZone_ce_ptr = NULL; ---- a/ext/intl/timezone/timezone_class.h -+++ b/ext/intl/timezone/timezone_class.h -@@ -29,6 +29,8 @@ - - #ifndef USE_TIMEZONE_POINTER - typedef void TimeZone; -+#else -+using icu::TimeZone; - #endif - - typedef struct { ---- a/ext/intl/timezone/timezone_methods.cpp -+++ b/ext/intl/timezone/timezone_methods.cpp -@@ -23,6 +23,7 @@ - #include <unicode/locid.h> - #include <unicode/timezone.h> - #include <unicode/ustring.h> -+#include <unicode/calendar.h> - #include "intl_convertcpp.h" - - #include "../common/common_date.h" -@@ -37,6 +38,9 @@ extern "C" { - } - #include "common/common_enum.h" - -+using icu::Locale; -+using icu::Calendar; -+ - U_CFUNC PHP_METHOD(IntlTimeZone, __construct) - { - zend_throw_exception( NULL, ---- a/ext/intl/uchar/uchar.c -+++ b/ext/intl/uchar/uchar.c -@@ -3,6 +3,7 @@ - #include "intl_convert.h" - - #include <unicode/uchar.h> -+#include <unicode/utf8.h> - - #define IC_METHOD(mname) PHP_METHOD(IntlChar, mname) - --- -2.19.2 - diff --git a/dev-lang/php/files/php-7.2.34-use-after-free-bug76047.patch b/dev-lang/php/files/php-7.2.34-use-after-free-bug76047.patch deleted file mode 100644 index b3a864ee82a8..000000000000 --- a/dev-lang/php/files/php-7.2.34-use-after-free-bug76047.patch +++ /dev/null @@ -1,174 +0,0 @@ -Backport of https://git.php.net/?p=php-src.git;a=commit;h=ef1e4891b47949c8dc0f9482eef9454a0ecdfa1d - ---- a/Zend/tests/bug52361.phpt -+++ b/Zend/tests/bug52361.phpt -@@ -25,9 +25,8 @@ try { - --EXPECTF-- - 1. Exception: aaa in %sbug52361.php:5 - Stack trace: --#0 %sbug52361.php(13): aaa->__destruct() --#1 %sbug52361.php(16): bbb() --#2 {main} -+#0 %sbug52361.php(16): aaa->__destruct() -+#1 {main} - 2. Exception: bbb in %sbug52361.php:13 - Stack trace: - #0 %sbug52361.php(16): bbb() ---- /dev/null -+++ b/Zend/tests/bug76047.phpt -@@ -0,0 +1,68 @@ -+--TEST-- -+Bug #76047: Use-after-free when accessing already destructed backtrace arguments -+--FILE-- -+<?php -+ -+class Vuln { -+ public $a; -+ public function __destruct() { -+ unset($this->a); -+ $backtrace = (new Exception)->getTrace(); -+ var_dump($backtrace); -+ } -+} -+ -+function test($arg) { -+ $arg = str_shuffle(str_repeat('A', 79)); -+ $vuln = new Vuln(); -+ $vuln->a = $arg; -+} -+ -+function test2($arg) { -+ $$arg = 1; // Trigger symbol table -+ $arg = str_shuffle(str_repeat('A', 79)); -+ $vuln = new Vuln(); -+ $vuln->a = $arg; -+} -+ -+test('x'); -+test2('x'); -+ -+?> -+--EXPECTF-- -+array(1) { -+ [0]=> -+ array(6) { -+ ["file"]=> -+ string(%d) "%s" -+ ["line"]=> -+ int(%d) -+ ["function"]=> -+ string(10) "__destruct" -+ ["class"]=> -+ string(4) "Vuln" -+ ["type"]=> -+ string(2) "->" -+ ["args"]=> -+ array(0) { -+ } -+ } -+} -+array(1) { -+ [0]=> -+ array(6) { -+ ["file"]=> -+ string(%d) "%s" -+ ["line"]=> -+ int(%d) -+ ["function"]=> -+ string(10) "__destruct" -+ ["class"]=> -+ string(4) "Vuln" -+ ["type"]=> -+ string(2) "->" -+ ["args"]=> -+ array(0) { -+ } -+ } -+} ---- a/Zend/zend_vm_def.h -+++ b/Zend/zend_vm_def.h -@@ -2366,9 +2366,9 @@ ZEND_VM_HELPER(zend_leave_helper, ANY, ANY) - uint32_t call_info = EX_CALL_INFO(); - - if (EXPECTED((call_info & (ZEND_CALL_CODE|ZEND_CALL_TOP|ZEND_CALL_HAS_SYMBOL_TABLE|ZEND_CALL_FREE_EXTRA_ARGS|ZEND_CALL_ALLOCATED)) == 0)) { -+ EG(current_execute_data) = EX(prev_execute_data); - i_free_compiled_variables(execute_data); - -- EG(current_execute_data) = EX(prev_execute_data); - if (UNEXPECTED(call_info & ZEND_CALL_RELEASE_THIS)) { - zend_object *object = Z_OBJ(execute_data->This); - #if 0 -@@ -2394,12 +2394,12 @@ ZEND_VM_HELPER(zend_leave_helper, ANY, ANY) - LOAD_NEXT_OPLINE(); - ZEND_VM_LEAVE(); - } else if (EXPECTED((call_info & (ZEND_CALL_CODE|ZEND_CALL_TOP)) == 0)) { -+ EG(current_execute_data) = EX(prev_execute_data); - i_free_compiled_variables(execute_data); - - if (UNEXPECTED(call_info & ZEND_CALL_HAS_SYMBOL_TABLE)) { - zend_clean_and_cache_symbol_table(EX(symbol_table)); - } -- EG(current_execute_data) = EX(prev_execute_data); - - /* Free extra args before releasing the closure, - * as that may free the op_array. */ -@@ -2449,6 +2449,7 @@ ZEND_VM_HELPER(zend_leave_helper, ANY, ANY) - ZEND_VM_LEAVE(); - } else { - if (EXPECTED((call_info & ZEND_CALL_CODE) == 0)) { -+ EG(current_execute_data) = EX(prev_execute_data); - i_free_compiled_variables(execute_data); - if (UNEXPECTED(call_info & (ZEND_CALL_HAS_SYMBOL_TABLE|ZEND_CALL_FREE_EXTRA_ARGS))) { - if (UNEXPECTED(call_info & ZEND_CALL_HAS_SYMBOL_TABLE)) { -@@ -2456,7 +2457,6 @@ ZEND_VM_HELPER(zend_leave_helper, ANY, ANY) - } - zend_vm_stack_free_extra_args_ex(call_info, execute_data); - } -- EG(current_execute_data) = EX(prev_execute_data); - if (UNEXPECTED(call_info & ZEND_CALL_CLOSURE)) { - OBJ_RELEASE((zend_object*)EX(func)->op_array.prototype); - } ---- a/Zend/zend_vm_execute.h -+++ b/Zend/zend_vm_execute.h -@@ -434,9 +434,9 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_leave_helper_SPEC(ZEND_OPCODE_ - uint32_t call_info = EX_CALL_INFO(); - - if (EXPECTED((call_info & (ZEND_CALL_CODE|ZEND_CALL_TOP|ZEND_CALL_HAS_SYMBOL_TABLE|ZEND_CALL_FREE_EXTRA_ARGS|ZEND_CALL_ALLOCATED)) == 0)) { -+ EG(current_execute_data) = EX(prev_execute_data); - i_free_compiled_variables(execute_data); - -- EG(current_execute_data) = EX(prev_execute_data); - if (UNEXPECTED(call_info & ZEND_CALL_RELEASE_THIS)) { - zend_object *object = Z_OBJ(execute_data->This); - #if 0 -@@ -462,12 +462,12 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_leave_helper_SPEC(ZEND_OPCODE_ - LOAD_NEXT_OPLINE(); - ZEND_VM_LEAVE(); - } else if (EXPECTED((call_info & (ZEND_CALL_CODE|ZEND_CALL_TOP)) == 0)) { -+ EG(current_execute_data) = EX(prev_execute_data); - i_free_compiled_variables(execute_data); - - if (UNEXPECTED(call_info & ZEND_CALL_HAS_SYMBOL_TABLE)) { - zend_clean_and_cache_symbol_table(EX(symbol_table)); - } -- EG(current_execute_data) = EX(prev_execute_data); - - /* Free extra args before releasing the closure, - * as that may free the op_array. */ -@@ -517,6 +517,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_leave_helper_SPEC(ZEND_OPCODE_ - ZEND_VM_LEAVE(); - } else { - if (EXPECTED((call_info & ZEND_CALL_CODE) == 0)) { -+ EG(current_execute_data) = EX(prev_execute_data); - i_free_compiled_variables(execute_data); - if (UNEXPECTED(call_info & (ZEND_CALL_HAS_SYMBOL_TABLE|ZEND_CALL_FREE_EXTRA_ARGS))) { - if (UNEXPECTED(call_info & ZEND_CALL_HAS_SYMBOL_TABLE)) { -@@ -524,7 +525,6 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_leave_helper_SPEC(ZEND_OPCODE_ - } - zend_vm_stack_free_extra_args_ex(call_info, execute_data); - } -- EG(current_execute_data) = EX(prev_execute_data); - if (UNEXPECTED(call_info & ZEND_CALL_CLOSURE)) { - OBJ_RELEASE((zend_object*)EX(func)->op_array.prototype); - } - diff --git a/dev-lang/php/files/php-7.4.13-issue80368.patch b/dev-lang/php/files/php-7.4.13-issue80368.patch deleted file mode 100644 index adad8f864ec1..000000000000 --- a/dev-lang/php/files/php-7.4.13-issue80368.patch +++ /dev/null @@ -1,17 +0,0 @@ -https://github.com/php/php-src/commit/0f579fd7c8171cb0f7ecc8db912933df450f3861 -https://github.com/php/php-src/commit/ecee3f1209a7c0ac9f99c7f640b2f5df56656e58 - ---- a/ext/openssl/openssl.c -+++ b/ext/openssl/openssl.c -@@ -6496,7 +6496,9 @@ static void php_openssl_load_cipher_mode(struct php_openssl_cipher_mode *mode, c - int cipher_mode = EVP_CIPHER_mode(cipher_type); - memset(mode, 0, sizeof(struct php_openssl_cipher_mode)); - switch (cipher_mode) { --#if PHP_OPENSSL_API_VERSION >= 0x10100 -+#ifdef EVP_CIPH_OCB_MODE -+ /* Since OpenSSL 1.1, all AEAD ciphers use a common framework. We check for -+ * EVP_CIPH_OCB_MODE, because LibreSSL does not support it. */ - case EVP_CIPH_GCM_MODE: - case EVP_CIPH_OCB_MODE: - case EVP_CIPH_CCM_MODE: - |