lang/php80: Upgrade from 8.0.12 to 8.0.13

Core:
        Fixed bug #81518 (Header injection via default_mimetype / default_charset).
    Date:
        Fixed bug #81500 (Interval serialization regression since 7.3.14 / 7.4.2).
    DBA:
        Fixed bug #81588 (TokyoCabinet driver leaks memory).
    MBString:
        Fixed bug #76167 (mbstring may use pointer from some previous request).
    Opcache:
        Fixed bug #81512 (Unexpected behavior with arrays and JIT).
    PCRE:
        Fixed bug #81424 (PCRE2 10.35 JIT performance regression).
    XML:
        Fixed bug #79971 (special character is breaking the path in xml function). (CVE-2021-21707)
    XMLReader:
        Fixed bug #81521 (XMLReader::getParserProperty may throw with a valid property).

Also include a patch to fix issue 259725:
dns_get_record fails when requested record doesn't exist

PR:		259725
Reported by:	fsbruva@yahoo.com
Sponsored by:	Bounce Experts
This commit is contained in:
Torsten Zuehlsdorff 2021-11-20 20:29:48 +01:00
parent 11d48ddebb
commit 91fd937f88
6 changed files with 49 additions and 43 deletions

View File

@ -1,4 +1,3 @@
PORTREVISION= 1
CATEGORIES= devel
MASTERDIR= ${.CURDIR}/../../lang/php80

View File

@ -1,38 +0,0 @@
Regressed by https://github.com/unicode-org/icu/commit/633438f8da99
In file included from breakiterator/breakiterator_class.cpp:21:
breakiterator/codepointiterator_internal.h:40:17: error: virtual function 'operator==' has a different return type ('UBool' (aka 'signed char')) than the function it overrides (which has return type 'bool')
virtual UBool operator==(const BreakIterator& that) const;
~~~~~ ^
/usr/local/include/unicode/brkiter.h:127:18: note: overridden virtual function is here
virtual bool operator==(const BreakIterator&) const = 0;
~~~~ ^
--- breakiterator/codepointiterator_internal.cpp.orig 2021-09-21 17:07:44 UTC
+++ breakiterator/codepointiterator_internal.cpp
@@ -73,7 +73,11 @@ CodePointBreakIterator::~CodePointBreakIterator()
clearCurrentCharIter();
}
+#if U_ICU_VERSION_MAJOR_NUM < 70
UBool CodePointBreakIterator::operator==(const BreakIterator& that) const
+#else
+bool CodePointBreakIterator::operator==(const BreakIterator& that) const
+#endif
{
if (typeid(*this) != typeid(that)) {
return false;
--- breakiterator/codepointiterator_internal.h.orig 2021-09-21 17:07:44 UTC
+++ breakiterator/codepointiterator_internal.h
@@ -37,7 +37,11 @@ namespace PHP {
virtual ~CodePointBreakIterator();
+#if U_ICU_VERSION_MAJOR_NUM < 70
virtual UBool operator==(const BreakIterator& that) const;
+#else
+ virtual bool operator==(const BreakIterator& that) const;
+#endif
virtual CodePointBreakIterator* clone(void) const;

View File

@ -1,5 +1,5 @@
PORTNAME= php80
DISTVERSION= 8.0.12
DISTVERSION= 8.0.13
PORTREVISION?= 0
CATEGORIES?= lang devel www
MASTER_SITES= PHP/distributions

View File

@ -1,3 +1,3 @@
TIMESTAMP = 1635020227
SHA256 (php-8.0.12.tar.xz) = a501017b3b0fd3023223ea25d98e87369b782f8a82310c4033d7ea6a989fea0a
SIZE (php-8.0.12.tar.xz) = 10713980
TIMESTAMP = 1637349092
SHA256 (php-8.0.13.tar.xz) = cd976805ec2e9198417651027dfe16854ba2c2c388151ab9d4d268513d52ed52
SIZE (php-8.0.13.tar.xz) = 10854284

View File

@ -0,0 +1,21 @@
--- ext/standard/dns.c.orig 2021-10-19 10:34:32 UTC
+++ ext/standard/dns.c
@@ -798,6 +798,7 @@ PHP_FUNCTION(dns_get_record)
zend_long type_param = PHP_DNS_ANY;
zval *authns = NULL, *addtl = NULL;
int type_to_fetch;
+ int dns_errno;
#if defined(HAVE_DNS_SEARCH)
struct sockaddr_storage from;
uint32_t fromsize = sizeof(from);
@@ -946,8 +947,9 @@ PHP_FUNCTION(dns_get_record)
n = php_dns_search(handle, hostname, C_IN, type_to_fetch, answer.qb2, sizeof answer);
if (n < 0) {
+ dns_errno = php_dns_errno(handle);
php_dns_free_handle(handle);
- switch (h_errno) {
+ switch (dns_errno) {
case NO_DATA:
case HOST_NOT_FOUND:
continue;

View File

@ -0,0 +1,24 @@
--- ext/standard/php_dns.h.orig 2021-10-19 10:34:32 UTC
+++ ext/standard/php_dns.h
@@ -24,6 +24,7 @@
((int)dns_search(res, dname, class, type, (char *) answer, anslen, (struct sockaddr *)&from, &fromsize))
#define php_dns_free_handle(res) \
dns_free(res)
+#define php_dns_errno(handle) h_errno
#elif defined(HAVE_RES_NSEARCH)
#define php_dns_search(res, dname, class, type, answer, anslen) \
@@ -37,11 +38,13 @@
res_nclose(res); \
php_dns_free_res(res)
#endif
+#define php_dns_errno(handle) handle->res_h_errno
#elif defined(HAVE_RES_SEARCH)
#define php_dns_search(res, dname, class, type, answer, anslen) \
res_search(dname, class, type, answer, anslen)
#define php_dns_free_handle(res) /* noop */
+#define php_dns_errno(handle) h_errno
#endif