From b566853723a7383e5a8a988912fd15586bbf5c53 Mon Sep 17 00:00:00 2001 From: David Offerman Date: Tue, 9 Jul 2019 09:58:46 -0400 Subject: [PATCH 1/4] Fix Phalcon\Mvc\Micro\LazyLoader segfault --- phalcon/mvc/micro/lazyloader.zep | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/phalcon/mvc/micro/lazyloader.zep b/phalcon/mvc/micro/lazyloader.zep index 3af81f872c..d8004ae94d 100644 --- a/phalcon/mvc/micro/lazyloader.zep +++ b/phalcon/mvc/micro/lazyloader.zep @@ -60,7 +60,11 @@ class LazyLoader let definition = this->_definition; if typeof handler != "object" { - let handler = new {definition}(); + if(!class_exists(definition)) { + throw new Exception("Handler '" . definition . "' doesn't exist"); + } + + let handler = create_instance(definition); let this->_handler = handler; } From 8a6f734ef4098ec1a1d8a279084f8dcfaa8de0ce Mon Sep 17 00:00:00 2001 From: David Offerman Date: Tue, 9 Jul 2019 15:57:39 -0400 Subject: [PATCH 2/4] Change to Zephir style IF statement --- phalcon/mvc/micro/lazyloader.zep | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/phalcon/mvc/micro/lazyloader.zep b/phalcon/mvc/micro/lazyloader.zep index d8004ae94d..d9876fec2b 100644 --- a/phalcon/mvc/micro/lazyloader.zep +++ b/phalcon/mvc/micro/lazyloader.zep @@ -60,7 +60,7 @@ class LazyLoader let definition = this->_definition; if typeof handler != "object" { - if(!class_exists(definition)) { + if !class_exists(definition) { throw new Exception("Handler '" . definition . "' doesn't exist"); } From 2348c162b5c8fc255de2340b0e959e8909e4a9e5 Mon Sep 17 00:00:00 2001 From: David Offerman Date: Tue, 9 Jul 2019 19:07:00 -0400 Subject: [PATCH 3/4] Inserted patch note to changelog --- CHANGELOG-3.4.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG-3.4.md b/CHANGELOG-3.4.md index 61a26163ff..e192316e29 100644 --- a/CHANGELOG-3.4.md +++ b/CHANGELOG-3.4.md @@ -3,6 +3,7 @@ - Changed default gcc's CFLAGS so that, the extension should be properly generated for most hosts, including Docker [#13143](https://github.com/phalcon/cphalcon/issues/13143) - `Phalcon\Forms\Form::clear()` now correctly clears single fields. [#14217](https://github.com/phalcon/cphalcon/issues/14217) - Used latest stable Zephir from 0.10.x branch to prevent segfaults with PHP 7.3.6 [#14160](https://github.com/phalcon/cphalcon/issues/14160) +- Fixed segfault in `Phalcon\Mvc\Micro\LazyLoader::__call()` when the handler has a syntax error. [#12396](https://github.com/phalcon/cphalcon/issues/12396) # [3.4.3](https://github.com/phalcon/cphalcon/releases/tag/v3.4.3) (2019-02-24) - Provided PHP 7.3 support [#13847](https://github.com/phalcon/cphalcon/issues/13847) From a03af9c432582a5389e3a6862e9c472a61a3fab3 Mon Sep 17 00:00:00 2001 From: Serghei Iakovlev Date: Wed, 10 Jul 2019 08:01:38 +0300 Subject: [PATCH 4/4] Update change log [ci skip] --- CHANGELOG-3.4.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG-3.4.md b/CHANGELOG-3.4.md index e192316e29..7328978ee1 100644 --- a/CHANGELOG-3.4.md +++ b/CHANGELOG-3.4.md @@ -1,9 +1,11 @@ +# [3.4.5](https://github.com/phalcon/cphalcon/releases/tag/v3.4.5) (2019-XX-XX) +- Fixed segfault in `Phalcon\Mvc\Micro\LazyLoader::__call()` when the handler has a syntax error. [#12396](https://github.com/phalcon/cphalcon/issues/12396) + # [3.4.4](https://github.com/phalcon/cphalcon/releases/tag/v3.4.4) (2019-06-30) - Generated Dialect Class referring to a PHP class can't be found [#13867](https://github.com/phalcon/cphalcon/pull/13867) - Changed default gcc's CFLAGS so that, the extension should be properly generated for most hosts, including Docker [#13143](https://github.com/phalcon/cphalcon/issues/13143) - `Phalcon\Forms\Form::clear()` now correctly clears single fields. [#14217](https://github.com/phalcon/cphalcon/issues/14217) - Used latest stable Zephir from 0.10.x branch to prevent segfaults with PHP 7.3.6 [#14160](https://github.com/phalcon/cphalcon/issues/14160) -- Fixed segfault in `Phalcon\Mvc\Micro\LazyLoader::__call()` when the handler has a syntax error. [#12396](https://github.com/phalcon/cphalcon/issues/12396) # [3.4.3](https://github.com/phalcon/cphalcon/releases/tag/v3.4.3) (2019-02-24) - Provided PHP 7.3 support [#13847](https://github.com/phalcon/cphalcon/issues/13847)