From e74a91862186bba5bb3eacb5b60631bc174b225c Mon Sep 17 00:00:00 2001 From: Anatol Belski Date: Mon, 11 Feb 2019 22:12:16 -0800 Subject: Update SDK version for AppVeyor --- .appveyor.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.appveyor.yml b/.appveyor.yml index deeccfa066..126e19d835 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -16,7 +16,7 @@ environment: PHP_BUILD_CACHE_BASE_DIR: c:\build-cache PHP_BUILD_OBJ_DIR: c:\obj PHP_BUILD_CACHE_SDK_DIR: c:\build-cache\sdk - PHP_BUILD_SDK_BRANCH: php-sdk-2.2.0beta1 + PHP_BUILD_SDK_BRANCH: php-sdk-2.2.0beta2 PHP_BUILD_CRT: vc15 # ext and env setup for tests #MYSQL_TEST_PASSWD: Password12! -- cgit v1.2.1 From 186b5de57537a77e764420119257aa296bdeb627 Mon Sep 17 00:00:00 2001 From: Anatol Belski Date: Mon, 11 Feb 2019 22:28:34 -0800 Subject: Replace broken binary SDK version --- .appveyor.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.appveyor.yml b/.appveyor.yml index 126e19d835..c3ad49c53e 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -16,7 +16,7 @@ environment: PHP_BUILD_CACHE_BASE_DIR: c:\build-cache PHP_BUILD_OBJ_DIR: c:\obj PHP_BUILD_CACHE_SDK_DIR: c:\build-cache\sdk - PHP_BUILD_SDK_BRANCH: php-sdk-2.2.0beta2 + PHP_BUILD_SDK_BRANCH: php-sdk-2.2.0beta3 PHP_BUILD_CRT: vc15 # ext and env setup for tests #MYSQL_TEST_PASSWD: Password12! -- cgit v1.2.1 From 9222702633c63254b08466b322266b647ac3e905 Mon Sep 17 00:00:00 2001 From: Dmitry Stogov Date: Tue, 12 Feb 2019 10:15:16 +0300 Subject: Avoid dependency on "struct flock" fields order. --- ext/opcache/ZendAccelerator.c | 68 +++++++++++++++++++++++++---------------- ext/opcache/ZendAccelerator.h | 13 -------- ext/opcache/config.m4 | 57 ---------------------------------- ext/opcache/zend_shared_alloc.c | 21 +++++++++---- 4 files changed, 56 insertions(+), 103 deletions(-) diff --git a/ext/opcache/ZendAccelerator.c b/ext/opcache/ZendAccelerator.c index 46a86a3109..601e3af0cf 100644 --- a/ext/opcache/ZendAccelerator.c +++ b/ext/opcache/ZendAccelerator.c @@ -230,11 +230,12 @@ static inline void accel_restart_enter(void) #ifdef ZEND_WIN32 INCREMENT(restart_in); #else -# ifdef _AIX - static FLOCK_STRUCTURE(restart_in_progress, F_WRLCK, SEEK_SET, 2, 1); -# else - static const FLOCK_STRUCTURE(restart_in_progress, F_WRLCK, SEEK_SET, 2, 1); -#endif + struct flock restart_in_progress; + + restart_in_progress.l_type = F_WRLCK; + restart_in_progress.l_whence = SEEK_SET; + restart_in_progress.l_start = 2; + restart_in_progress.l_len = 1; if (fcntl(lock_file, F_SETLK, &restart_in_progress) == -1) { zend_accel_error(ACCEL_LOG_DEBUG, "RestartC(+1): %s (%d)", strerror(errno), errno); @@ -249,11 +250,12 @@ static inline void accel_restart_leave(void) ZCSG(restart_in_progress) = 0; DECREMENT(restart_in); #else -# ifdef _AIX - static FLOCK_STRUCTURE(restart_finished, F_UNLCK, SEEK_SET, 2, 1); -# else - static const FLOCK_STRUCTURE(restart_finished, F_UNLCK, SEEK_SET, 2, 1); -# endif + struct flock restart_finished; + + restart_finished.l_type = F_UNLCK; + restart_finished.l_whence = SEEK_SET; + restart_finished.l_start = 2; + restart_finished.l_len = 1; ZCSG(restart_in_progress) = 0; if (fcntl(lock_file, F_SETLK, &restart_finished) == -1) { @@ -266,7 +268,12 @@ static inline int accel_restart_is_active(void) { if (ZCSG(restart_in_progress)) { #ifndef ZEND_WIN32 - FLOCK_STRUCTURE(restart_check, F_WRLCK, SEEK_SET, 2, 1); + struct flock restart_check; + + restart_check.l_type = F_WRLCK; + restart_check.l_whence = SEEK_SET; + restart_check.l_start = 2; + restart_check.l_len = 1; if (fcntl(lock_file, F_GETLK, &restart_check) == -1) { zend_accel_error(ACCEL_LOG_DEBUG, "RestartC: %s (%d)", strerror(errno), errno); @@ -291,11 +298,12 @@ static inline int accel_activate_add(void) #ifdef ZEND_WIN32 INCREMENT(mem_usage); #else -# ifdef _AIX - static FLOCK_STRUCTURE(mem_usage_lock, F_RDLCK, SEEK_SET, 1, 1); -# else - static const FLOCK_STRUCTURE(mem_usage_lock, F_RDLCK, SEEK_SET, 1, 1); -# endif + struct flock mem_usage_lock; + + mem_usage_lock.l_type = F_RDLCK; + mem_usage_lock.l_whence = SEEK_SET; + mem_usage_lock.l_start = 1; + mem_usage_lock.l_len = 1; if (fcntl(lock_file, F_SETLK, &mem_usage_lock) == -1) { zend_accel_error(ACCEL_LOG_DEBUG, "UpdateC(+1): %s (%d)", strerror(errno), errno); @@ -314,11 +322,12 @@ static inline void accel_deactivate_sub(void) ZCG(counted) = 0; } #else -# ifdef _AIX - static FLOCK_STRUCTURE(mem_usage_unlock, F_UNLCK, SEEK_SET, 1, 1); -# else - static const FLOCK_STRUCTURE(mem_usage_unlock, F_UNLCK, SEEK_SET, 1, 1); -# endif + struct flock mem_usage_unlock; + + mem_usage_unlock.l_type = F_UNLCK; + mem_usage_unlock.l_whence = SEEK_SET; + mem_usage_unlock.l_start = 1; + mem_usage_unlock.l_len = 1; if (fcntl(lock_file, F_SETLK, &mem_usage_unlock) == -1) { zend_accel_error(ACCEL_LOG_DEBUG, "UpdateC(-1): %s (%d)", strerror(errno), errno); @@ -331,11 +340,12 @@ static inline void accel_unlock_all(void) #ifdef ZEND_WIN32 accel_deactivate_sub(); #else -# ifdef _AIX - static FLOCK_STRUCTURE(mem_usage_unlock_all, F_UNLCK, SEEK_SET, 0, 0); -# else - static const FLOCK_STRUCTURE(mem_usage_unlock_all, F_UNLCK, SEEK_SET, 0, 0); -# endif + struct flock mem_usage_unlock_all; + + mem_usage_unlock_all.l_type = F_UNLCK; + mem_usage_unlock_all.l_whence = SEEK_SET; + mem_usage_unlock_all.l_start = 0; + mem_usage_unlock_all.l_len = 0; if (fcntl(lock_file, F_SETLK, &mem_usage_unlock_all) == -1) { zend_accel_error(ACCEL_LOG_DEBUG, "UnlockAll: %s (%d)", strerror(errno), errno); @@ -730,8 +740,12 @@ static inline int accel_is_inactive(void) return SUCCESS; } #else - FLOCK_STRUCTURE(mem_usage_check, F_WRLCK, SEEK_SET, 1, 1); + struct flock mem_usage_check; + mem_usage_check.l_type = F_WRLCK; + mem_usage_check.l_whence = SEEK_SET; + mem_usage_check.l_start = 1; + mem_usage_check.l_len = 1; mem_usage_check.l_pid = -1; if (fcntl(lock_file, F_GETLK, &mem_usage_check) == -1) { zend_accel_error(ACCEL_LOG_DEBUG, "UpdateC: %s (%d)", strerror(errno), errno); diff --git a/ext/opcache/ZendAccelerator.h b/ext/opcache/ZendAccelerator.h index 685d9e29cb..5f195ba3bc 100644 --- a/ext/opcache/ZendAccelerator.h +++ b/ext/opcache/ZendAccelerator.h @@ -89,19 +89,6 @@ /*** file locking ***/ #ifndef ZEND_WIN32 extern int lock_file; - -# if defined(HAVE_FLOCK_AIX64) -# define FLOCK_STRUCTURE(name, type, whence, start, len) \ - struct flock name = {type, whence, 0, 0, 0, start, len } -# elif defined(HAVE_FLOCK_BSD) -# define FLOCK_STRUCTURE(name, type, whence, start, len) \ - struct flock name = {start, len, -1, type, whence} -# elif defined(HAVE_FLOCK_LINUX) -# define FLOCK_STRUCTURE(name, type, whence, start, len) \ - struct flock name = {type, whence, start, len} -# else -# error "Don't know how to define struct flock" -# endif #endif #if defined(HAVE_OPCACHE_FILE_CACHE) && defined(ZEND_WIN32) diff --git a/ext/opcache/config.m4 b/ext/opcache/config.m4 index ec14487c12..aa50d56116 100644 --- a/ext/opcache/config.m4 +++ b/ext/opcache/config.m4 @@ -343,63 +343,6 @@ int main() { msg=yes,msg=no,msg=no) AC_MSG_RESULT([$msg]) -flock_type=unknown -AC_MSG_CHECKING(for struct flock layout) - -if test "$flock_type" = "unknown"; then -AC_TRY_RUN([ - #include - struct flock lock = { 1, 2, 3, 4, 5, 6, 7 }; - int main() { - if(lock.l_type == 1 && lock.l_whence == 2 && lock.l_start == 6 && lock.l_len== 7) { - return 0; - } - return 1; - } -], [ - flock_type=aix64 - AC_DEFINE([HAVE_FLOCK_AIX64], [], [Struct flock is 64-bit AIX-type]) -], []) -fi - -if test "$flock_type" = "unknown"; then -AC_TRY_RUN([ - #include - struct flock lock = { 1, 2, 3, 4, 5 }; - int main() { - if(lock.l_type == 1 && lock.l_whence == 2 && lock.l_start == 3 && lock.l_len == 4) { - return 0; - } - return 1; - } -], [ - flock_type=linux - AC_DEFINE([HAVE_FLOCK_LINUX], [], [Struct flock is Linux-type]) -], []) -fi - -if test "$flock_type" = "unknown"; then -AC_TRY_RUN([ - #include - struct flock lock = { 1, 2, 3, 4, 5 }; - int main() { - if(lock.l_start == 1 && lock.l_len == 2 && lock.l_type == 4 && lock.l_whence == 5) { - return 0; - } - return 1; - } -], [ - flock_type=bsd - AC_DEFINE([HAVE_FLOCK_BSD], [], [Struct flock is BSD-type]) -], []) -fi - -AC_MSG_RESULT([$flock_type]) - -if test "$flock_type" = "unknown"; then - AC_MSG_ERROR([Don't know how to define struct flock on this system[,] set --enable-opcache=no]) -fi - PHP_NEW_EXTENSION(opcache, ZendAccelerator.c \ zend_accelerator_blacklist.c \ diff --git a/ext/opcache/zend_shared_alloc.c b/ext/opcache/zend_shared_alloc.c index 249d99022a..f2415feaff 100644 --- a/ext/opcache/zend_shared_alloc.c +++ b/ext/opcache/zend_shared_alloc.c @@ -371,15 +371,15 @@ void zend_shared_alloc_safe_unlock(void) } } -#ifndef ZEND_WIN32 -/* name l_type l_whence l_start l_len */ -static FLOCK_STRUCTURE(mem_write_lock, F_WRLCK, SEEK_SET, 0, 1); -static FLOCK_STRUCTURE(mem_write_unlock, F_UNLCK, SEEK_SET, 0, 1); -#endif - void zend_shared_alloc_lock(void) { #ifndef ZEND_WIN32 + struct flock mem_write_lock; + + mem_write_lock.l_type = F_WRLCK; + mem_write_lock.l_whence = SEEK_SET; + mem_write_lock.l_start = 0; + mem_write_lock.l_len = 1; #ifdef ZTS tsrm_mutex_lock(zts_lock); @@ -410,6 +410,15 @@ void zend_shared_alloc_lock(void) void zend_shared_alloc_unlock(void) { +#ifndef ZEND_WIN32 + struct flock mem_write_unlock; + + mem_write_unlock.l_type = F_UNLCK; + mem_write_unlock.l_whence = SEEK_SET; + mem_write_unlock.l_start = 0; + mem_write_unlock.l_len = 1; +#endif + ZCG(locked) = 0; #ifndef ZEND_WIN32 -- cgit v1.2.1 From c4294440ffc4a59a1298292b76072e6759034a68 Mon Sep 17 00:00:00 2001 From: Ben Ramsey Date: Sun, 10 Feb 2019 12:25:19 -0600 Subject: Fixed bug #77564: Memory leak in exif_process_IFD_TAG The memory leak occurs when more than one UserComment tag is present in the EXIF data. It's still considered corrupt EXIF data, but this ensures the memory is freed before trying to set to already allocated memory. --- NEWS | 3 +++ ext/exif/exif.c | 4 ++++ ext/exif/tests/bug77564/bug77564.jpg | Bin 0 -> 73 bytes ext/exif/tests/bug77564/bug77564.phpt | 18 ++++++++++++++++++ 4 files changed, 25 insertions(+) create mode 100644 ext/exif/tests/bug77564/bug77564.jpg create mode 100644 ext/exif/tests/bug77564/bug77564.phpt diff --git a/NEWS b/NEWS index fa5200ce84..533b04e5ee 100644 --- a/NEWS +++ b/NEWS @@ -6,6 +6,9 @@ PHP NEWS . Fixed bug #77589 (Core dump using parse_ini_string with numeric sections). (Laruence) +- Exif: + . Fixed bug #77564 (Memory leak in exif_process_IFD_TAG). (Ben Ramsey) + - PDO_OCI: . Support Oracle Database tracing attributes ACTION, MODULE, CLIENT_INFO, and CLIENT_IDENTIFIER. (Cameron Porter) diff --git a/ext/exif/exif.c b/ext/exif/exif.c index be02c9da40..9c202196c6 100644 --- a/ext/exif/exif.c +++ b/ext/exif/exif.c @@ -3405,6 +3405,10 @@ static int exif_process_IFD_TAG(image_info_type *ImageInfo, char *dir_entry, cha break; case TAG_USERCOMMENT: + EFREE_IF(ImageInfo->UserComment); + ImageInfo->UserComment = NULL; + EFREE_IF(ImageInfo->UserCommentEncoding); + ImageInfo->UserCommentEncoding = NULL; ImageInfo->UserCommentLength = exif_process_user_comment(ImageInfo, &(ImageInfo->UserComment), &(ImageInfo->UserCommentEncoding), value_ptr, byte_count); break; diff --git a/ext/exif/tests/bug77564/bug77564.jpg b/ext/exif/tests/bug77564/bug77564.jpg new file mode 100644 index 0000000000..868fffd1db Binary files /dev/null and b/ext/exif/tests/bug77564/bug77564.jpg differ diff --git a/ext/exif/tests/bug77564/bug77564.phpt b/ext/exif/tests/bug77564/bug77564.phpt new file mode 100644 index 0000000000..2f72b3c9ac --- /dev/null +++ b/ext/exif/tests/bug77564/bug77564.phpt @@ -0,0 +1,18 @@ +--TEST-- +Bug 77564 (Memory leak in exif_process_IFD_TAG) +--SKIPIF-- + +--FILE-- + +DONE +--EXPECTF-- + +Warning: exif_read_data(bug77564.jpg): Illegal IFD offset in %sbug77564.php on line %d + +Warning: exif_read_data(bug77564.jpg): File structure corrupted in %sbug77564.php on line %d + +Warning: exif_read_data(bug77564.jpg): Invalid JPEG file in %sbug77564.php on line %d +bool(false) +DONE -- cgit v1.2.1 From a109fddba4e3fbb6e3a2e008c0fa20a57f26103d Mon Sep 17 00:00:00 2001 From: Nikita Popov Date: Tue, 12 Feb 2019 09:54:52 +0100 Subject: Remove "defensive copy" of DatePeriod properties get_properties() constructs these as fresh objects with no relation to the internals, there is no need to clone them again. Additionally the current implementation leaks memory, because the original objects are never freed (see PR #3121). --- ext/date/php_date.c | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/ext/date/php_date.c b/ext/date/php_date.c index 1e136e00b6..c8479b5164 100644 --- a/ext/date/php_date.c +++ b/ext/date/php_date.c @@ -5278,7 +5278,6 @@ PHP_METHOD(DatePeriod, __wakeup) /* {{{ date_period_read_property */ static zval *date_period_read_property(zval *object, zval *member, int type, void **cache_slot, zval *rv) { - zval *zv; if (type != BP_VAR_IS && type != BP_VAR_R) { zend_throw_error(NULL, "Retrieval of DatePeriod properties for modification is unsupported"); return &EG(uninitialized_zval); @@ -5286,13 +5285,7 @@ static zval *date_period_read_property(zval *object, zval *member, int type, voi Z_OBJPROP_P(object); /* build properties hash table */ - zv = std_object_handlers.read_property(object, member, type, cache_slot, rv); - if (Z_TYPE_P(zv) == IS_OBJECT && Z_OBJ_HANDLER_P(zv, clone_obj)) { - /* defensive copy */ - ZVAL_OBJ(zv, Z_OBJ_HANDLER_P(zv, clone_obj)(zv)); - } - - return zv; + return std_object_handlers.read_property(object, member, type, cache_slot, rv); } /* }}} */ -- cgit v1.2.1 From b5cb3ac8ecab71bfe1eb7d5b2d7a48970e11a5b4 Mon Sep 17 00:00:00 2001 From: hsldymq Date: Thu, 28 Jun 2018 02:25:11 +0800 Subject: Make pid & uid available while handling realtime signals --- ext/pcntl/pcntl.c | 6 ++++++ ext/pcntl/tests/pcntl_realtime_signal.phpt | 20 ++++++++++++++++++++ 2 files changed, 26 insertions(+) create mode 100644 ext/pcntl/tests/pcntl_realtime_signal.phpt diff --git a/ext/pcntl/pcntl.c b/ext/pcntl/pcntl.c index 228111d351..36d2a672ab 100644 --- a/ext/pcntl/pcntl.c +++ b/ext/pcntl/pcntl.c @@ -1276,6 +1276,12 @@ static void pcntl_siginfo_to_zval(int signo, siginfo_t *siginfo, zval *user_sigi break; #endif } +#if defined(SIGRTMIN) && defined(SIGRTMAX) + if (SIGRTMIN <= signo && signo <= SIGRTMAX) { + add_assoc_long_ex(user_siginfo, "pid", sizeof("pid")-1, siginfo->si_pid); + add_assoc_long_ex(user_siginfo, "uid", sizeof("uid")-1, siginfo->si_uid); + } +#endif } } /* }}} */ diff --git a/ext/pcntl/tests/pcntl_realtime_signal.phpt b/ext/pcntl/tests/pcntl_realtime_signal.phpt new file mode 100644 index 0000000000..212f15e03b --- /dev/null +++ b/ext/pcntl/tests/pcntl_realtime_signal.phpt @@ -0,0 +1,20 @@ +--TEST-- +pcntl_signal() context of realtime signal +--SKIPIF-- + + + +--FILE-- + +--EXPECTF-- +%rgot realtime signal from \d+, ruid:\d+%r +ok -- cgit v1.2.1 From 8e34de475699a4aa0fbc7b8430574b56dc839362 Mon Sep 17 00:00:00 2001 From: Nikita Popov Date: Tue, 12 Feb 2019 10:49:20 +0100 Subject: Fixed bug #77608 Remove special handling of doubles and escape them as usual instead. --- NEWS | 2 ++ ext/standard/http.c | 9 --------- ext/standard/tests/strings/bug77608.phpt | 11 +++++++++++ 3 files changed, 13 insertions(+), 9 deletions(-) create mode 100644 ext/standard/tests/strings/bug77608.phpt diff --git a/NEWS b/NEWS index 533b04e5ee..6fa239021d 100644 --- a/NEWS +++ b/NEWS @@ -20,6 +20,8 @@ PHP NEWS - Standard: . Fixed bug #77552 (Unintialized php_stream_statbuf in stat functions). (John Stevenson) + . Fixed bug #77608 (http_build_query doesn't encode "+" in a float number). + (Nikita) 07 Feb 2019, PHP 7.2.15 diff --git a/ext/standard/http.c b/ext/standard/http.c index f73d4cac7e..c11c940abe 100644 --- a/ext/standard/http.c +++ b/ext/standard/http.c @@ -192,15 +192,6 @@ PHPAPI int php_url_encode_hash_ex(HashTable *ht, smart_str *formstr, case IS_TRUE: smart_str_appendl(formstr, "1", sizeof("1")-1); break; - case IS_DOUBLE: - { - char *ekey; - size_t ekey_len; - ekey_len = spprintf(&ekey, 0, "%.*G", (int) EG(precision), Z_DVAL_P(zdata)); - smart_str_appendl(formstr, ekey, ekey_len); - efree(ekey); - } - break; default: { zend_string *ekey; diff --git a/ext/standard/tests/strings/bug77608.phpt b/ext/standard/tests/strings/bug77608.phpt new file mode 100644 index 0000000000..77bfb74a87 --- /dev/null +++ b/ext/standard/tests/strings/bug77608.phpt @@ -0,0 +1,11 @@ +--TEST-- +Bug #77608: http_build_query doesn't encode "+" in a float number +--FILE-- + 1E+14, "y" => "1E+14"]; +echo http_build_query($a); + +?> +--EXPECT-- +x=1.0E%2B14&y=1E%2B14 -- cgit v1.2.1 From 07877c46e3057bc679766898d50529be812243f3 Mon Sep 17 00:00:00 2001 From: DanielCiochiu Date: Tue, 12 Feb 2019 11:40:46 +0100 Subject: Fixed bug #75546 By respecting the SILENT flag when checking the visibility of a class constant. --- NEWS | 2 ++ Zend/zend_constants.c | 4 +++- ext/standard/tests/general_functions/bug72920.phpt | 11 ++++------- tests/classes/constants_visibility_002.phpt | 6 +----- tests/classes/constants_visibility_003.phpt | 6 +----- tests/classes/constants_visibility_008.phpt | 12 ++++++++++++ 6 files changed, 23 insertions(+), 18 deletions(-) create mode 100644 tests/classes/constants_visibility_008.phpt diff --git a/NEWS b/NEWS index 6fa239021d..2972812f1f 100644 --- a/NEWS +++ b/NEWS @@ -5,6 +5,8 @@ PHP NEWS - Core: . Fixed bug #77589 (Core dump using parse_ini_string with numeric sections). (Laruence) + . Fixed bug #75546 (function "defined" should ignore class constant + visibility). (Daniel Ciochiu) - Exif: . Fixed bug #77564 (Memory leak in exif_process_IFD_TAG). (Ben Ramsey) diff --git a/Zend/zend_constants.c b/Zend/zend_constants.c index 14d712235a..64265d3c19 100644 --- a/Zend/zend_constants.c +++ b/Zend/zend_constants.c @@ -341,7 +341,9 @@ ZEND_API zval *zend_get_constant_ex(zend_string *cname, zend_class_entry *scope, ret_constant = NULL; } else { if (!zend_verify_const_access(c, scope)) { - zend_throw_error(NULL, "Cannot access %s const %s::%s", zend_visibility_string(Z_ACCESS_FLAGS(c->value)), ZSTR_VAL(class_name), ZSTR_VAL(constant_name)); + if ((flags & ZEND_FETCH_CLASS_SILENT) == 0) { + zend_throw_error(NULL, "Cannot access %s const %s::%s", zend_visibility_string(Z_ACCESS_FLAGS(c->value)), ZSTR_VAL(class_name), ZSTR_VAL(constant_name)); + } goto failure; } ret_constant = &c->value; diff --git a/ext/standard/tests/general_functions/bug72920.phpt b/ext/standard/tests/general_functions/bug72920.phpt index b5ca4760c3..8ba4d26713 100644 --- a/ext/standard/tests/general_functions/bug72920.phpt +++ b/ext/standard/tests/general_functions/bug72920.phpt @@ -6,10 +6,7 @@ class Foo { private const C1 = "a"; } -try { - var_dump(constant('Foo::C1')); -} catch (Error $e) { - var_dump($e->getMessage()); -} ---EXPECT-- -string(35) "Cannot access private const Foo::C1" +var_dump(constant('Foo::C1')); +--EXPECTF-- +Warning: constant(): Couldn't find constant Foo::C1 in %s on line %d +NULL diff --git a/tests/classes/constants_visibility_002.phpt b/tests/classes/constants_visibility_002.phpt index 6ec9901269..4e0ecb1aa2 100644 --- a/tests/classes/constants_visibility_002.phpt +++ b/tests/classes/constants_visibility_002.phpt @@ -21,8 +21,4 @@ constant('A::protectedConst'); string(14) "protectedConst" string(14) "protectedConst" -Fatal error: Uncaught Error: Cannot access protected const A::protectedConst in %s:14 -Stack trace: -#0 %s(14): constant('A::protectedCon...') -#1 {main} - thrown in %s on line 14 +Warning: constant(): Couldn't find constant A::protectedConst in %s on line %d diff --git a/tests/classes/constants_visibility_003.phpt b/tests/classes/constants_visibility_003.phpt index 9c7bcfb21c..7c961695ed 100644 --- a/tests/classes/constants_visibility_003.phpt +++ b/tests/classes/constants_visibility_003.phpt @@ -21,8 +21,4 @@ constant('A::privateConst'); string(12) "privateConst" string(12) "privateConst" -Fatal error: Uncaught Error: Cannot access private const A::privateConst in %s:14 -Stack trace: -#0 %s(14): constant('A::privateConst') -#1 {main} - thrown in %s on line 14 +Warning: constant(): Couldn't find constant A::privateConst in %s on line %d diff --git a/tests/classes/constants_visibility_008.phpt b/tests/classes/constants_visibility_008.phpt new file mode 100644 index 0000000000..f24b70cf59 --- /dev/null +++ b/tests/classes/constants_visibility_008.phpt @@ -0,0 +1,12 @@ +--TEST-- +Defined on private constant should not raise exception +--FILE-- +