Dmitry Stogov
560e4fa393
Removed or simplified incorrect SEPARATE_*() macros usage.
2015-09-29 11:17:43 +03:00
Bob Weinand
95dbe1d03e
Short-circuit zend_parse_parameters_none() so that expensive zpp() call never happens in non-exceptional case
2015-09-20 02:43:22 +02:00
Stanislav Malyshev
9b1a224d4e
Merge branch 'PHP-5.6'
...
* PHP-5.6: (21 commits)
fix unit tests
update NEWS
add NEWS for fixes
Improve fix for #70172
Fix bug #70312 - HAVAL gives wrong hashes in specific cases
fix test
add test
Fix bug #70366 - use-after-free vulnerability in unserialize() with SplDoublyLinkedList
Fix bug #70365 - use-after-free vulnerability in unserialize() with SplObjectStorage
Fix bug #70172 - Use After Free Vulnerability in unserialize()
Fix bug #70388 - SOAP serialize_function_call() type confusion
Fixed bug #70350 : ZipArchive::extractTo allows for directory traversal when creating directories
Improve fix for #70385
Fix bug #70345 (Multiple vulnerabilities related to PCRE functions)
Fix bug #70385 (Buffer over-read in exif_read_data with TIFF IFD tag byte value of 32 bytes)
Fix bug #70219 (Use after free vulnerability in session deserializer)
Fix bug ##70284 (Use after free vulnerability in unserialize() with GMP)
Fix for bug #69782
Add CVE IDs asigned (post release) to PHP 5.4.43
Add CVE IDs asigned to #69085 (PHP 5.4.39)
...
Conflicts:
ext/exif/exif.c
ext/gmp/gmp.c
ext/pcre/php_pcre.c
ext/session/session.c
ext/session/tests/session_decode_variation3.phpt
ext/soap/soap.c
ext/spl/spl_observer.c
ext/standard/var.c
ext/standard/var_unserializer.c
ext/standard/var_unserializer.re
ext/xsl/xsltprocessor.c
2015-09-02 00:37:20 -07:00
Dmitry Stogov
66770f9c37
Added missing set of fcc->initialized flag.
2015-09-01 03:15:50 +03:00
Dmitry Stogov
37f0c6b5cb
Add myself into list of authors of the most refactored files.
2015-08-31 11:38:16 +03:00
Dmitry Stogov
71af54e5f6
Mark error and exception functions as "cold" (Matt's idea)
2015-08-19 14:40:56 +03:00
Julien Pauli
9a138b47c9
Removed unused code
2015-08-18 14:33:04 +02:00
Xinchen Hui
0bddc18619
Fixed bug #70156 (Segfault in zend_find_alias_name)
2015-07-28 16:39:58 +08:00
Dreamsxin
7554e83037
Updated zend_update_static_property
2015-07-13 08:42:18 +08:00
Aaron Piotrowski
5df893ce3c
Use NULL where possible for exception class
...
Matches usage of zend_throw_exception()/zend_throw_exception_ex().
2015-07-07 12:10:55 -05:00
Aaron Piotrowski
1adf3df81e
Throw TypeError for invalid callback
...
Matches behavior of zend_internal_type_error() if E_ERROR is passed to
zend_wrong_callback_error().
2015-07-06 15:03:35 -05:00
Aaron Piotrowski
22c38b2ef5
Remove need to pass error level
2015-07-03 17:53:41 -05:00
Aaron Piotrowski
5a99c07ecc
Enable throwing custom exceptions from errors
2015-07-03 17:53:40 -05:00
Dmitry Stogov
7aa7627172
Use ZSTR_ API to access zend_string elements (this is just renaming without semantick changes).
2015-06-30 13:59:27 +03:00
Dmitry Stogov
4bd22cf1c1
Improved zend_string API (Francois Laupretre)
...
Squashed commit of the following:
commit d96eab8d79
Author: Francois Laupretre <francois@tekwire.net>
Date: Fri Jun 26 01:23:31 2015 +0200
Use the new 'ZSTR' macros in the rest of the code.
Does not change anything to the generated code (thanks to compat macros) but cleaner.
commit b352643910
Author: Francois Laupretre <francois@tekwire.net>
Date: Thu Jun 25 13:45:06 2015 +0200
Improve zend_string API
Add missing methods
2015-06-29 16:44:54 +03:00
Nikita Popov
628d439402
Drop superfluous __toString handling code
...
This is already covered by the cast_object invokation above it. We
do not use this kind of fallback in any other casting code anymore.
2015-06-22 15:33:41 +02:00
Dmitry Stogov
8e10e8f921
Avoid zval duplication in ZVAL_ZVAL() macro (it was necessary only in few places).
...
Switch from ZVAL_ZVAL() to simpler macros where possible (it makes sense to review remaining places)
2015-06-12 12:33:23 +03:00
Dmitry Stogov
6bcf121f5b
micro-optimization
2015-06-03 13:43:05 +03:00
Dmitry Stogov
ca64b41b99
Fixed zend_update_class_constants() to always resolve all constants.
...
Call zend_update_class_constants() only when necessary.
2015-05-21 04:13:10 +03:00
Dmitry Stogov
70c86732cb
Use zend_string to represent pdo_column_data.name and avoid duplication.
2015-05-05 16:19:51 +03:00
Dmitry Stogov
388c2cbdbc
Micro optimizations
2015-04-28 19:11:45 +03:00
Dmitry Stogov
49cf7c5d12
Don't propogate "fake" EX(called_scope) and EX(This) into each internal function.
...
They need quite seldom and it's cheaper to get them from corresponfing upper stack frame.
2015-04-23 12:16:37 +03:00
Dmitry Stogov
15a5f61cf4
Use fast method to check if first arguments should be passed by reference (not tested onbig endian).
2015-04-22 21:46:13 +03:00
Xinchen Hui
ec8671d429
Remove duplicated assignment
2015-04-16 11:58:50 +08:00
Dmitry Stogov
5e8133f453
Squashed commit of the following:
...
commit 2399fc84c5
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Apr 10 12:38:08 2015 +0300
Removed useless assignment
commit 796b633817
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Apr 10 12:35:31 2015 +0300
Fixed execution with overriden zend_execute_ex()
commit 4a9fb125aa
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Apr 10 02:02:58 2015 +0300
Fixed executor without global registers
commit d456c30e00
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Apr 10 01:30:35 2015 +0300
Restored original behavior for tests/classes/__call_004.phpt
commit 479646d37f
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Apr 10 00:32:17 2015 +0300
Fixed test. We don't keep stack frame for fake function anymore.
commit 9ae61e33e2
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Apr 10 00:30:09 2015 +0300
Use ZEND_ACC_CALL_VIA_TRAMPOLINE instead of ZEND_ACC_CALL_VIA_HANDLER. Keep ZEND_ACC_CALL_VIA_HANDLER for compatibility.
commit 0a8403a2a0
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Apr 10 00:05:43 2015 +0300
Rename PROXY_CALL into CALL_TRAMPLINE.
Generalize API to allow reuse EG(trampline) for other purposes.
commit 4ea0525c10
Author: Dmitry Stogov <dmitry@zend.com>
Date: Thu Apr 9 23:22:25 2015 +0300
Reuse EG(proxy_call_op) for all proxy. Move proxy related functions from zend_objects_API to zend_object_handlers.
commit 529bf737ca
Author: Dmitry Stogov <dmitry@zend.com>
Date: Thu Apr 9 21:42:23 2015 +0300
Accurate use of proxy_call
commit 5d62837d5b
Merge: 83e749f
690843f
Author: Dmitry Stogov <dmitry@zend.com>
Date: Thu Apr 9 19:40:00 2015 +0300
Merge branch 'master' into opcodefy-call
* master:
Fixed GOTO executor
Fixed typo
Changed ArrayIterator implementation using zend_hash_iterator_... API. Allowed modification of itterated ArrayObject using the same behavior as proposed in `Fix "foreach" behavior`. Removed "Array was modified outside object and internal position is no longer valid" hack.
commit 83e749ff3b
Author: Dmitry Stogov <dmitry@zend.com>
Date: Thu Apr 9 19:39:10 2015 +0300
Improved ZEND_PROXY_CALL
commit 0c829afc53
Author: Dmitry Stogov <dmitry@zend.com>
Date: Thu Apr 9 15:14:49 2015 +0300
Reverted white-space changes
commit df65144488
Merge: 5fd2f97
97756d9
Author: Dmitry Stogov <dmitry@zend.com>
Date: Thu Apr 9 14:37:07 2015 +0300
Merge branch 'opcodefy-call' of github.com:laruence/php-src into opcodefy-call
* 'opcodefy-call' of github.com:laruence/php-src:
Ready for PR
Fixed static call
Improve performance by using prealloated op_arrray
Respect called_scope
Support internal magical __call/__callStatic
opcode-fy magical __callStatic
Opcode-fy magical __call
commit 97756d9190
Author: Xinchen Hui <laruence@gmail.com>
Date: Thu Apr 9 19:07:59 2015 +0800
Ready for PR
commit 74f9930846
Author: Xinchen Hui <laruence@gmail.com>
Date: Thu Apr 9 19:03:00 2015 +0800
Fixed static call
commit ec1d9eb592
Author: Xinchen Hui <laruence@gmail.com>
Date: Thu Apr 9 18:23:17 2015 +0800
Improve performance by using prealloated op_arrray
commit df7fbbf949
Author: Xinchen Hui <laruence@gmail.com>
Date: Thu Apr 9 15:10:02 2015 +0800
Respect called_scope
commit 769d1d59fb
Author: Xinchen Hui <laruence@gmail.com>
Date: Thu Apr 9 12:19:23 2015 +0800
Support internal magical __call/__callStatic
commit a980fedd5b
Author: Xinchen Hui <laruence@gmail.com>
Date: Wed Apr 8 18:35:41 2015 +0800
opcode-fy magical __callStatic
commit 73855f7d53
Author: Xinchen Hui <laruence@gmail.com>
Date: Wed Apr 8 14:21:55 2015 +0800
Opcode-fy magical __call
2015-04-10 23:01:00 +03:00
Nikita Popov
122d759618
Always throw TypeException on throwing zpp failures
...
Introduces a ZEND_PARSE_PARAMS_THROW flag for zpp, which forces to
report FAILURE errors using a TypeException instead of a Warning,
like it would happen in strict mode.
Adds a zend_parse_parameters_throw() convenience function, which
invokes zpp with this flag.
Converts all cases I could identify, where we currently have
throwing zpp usage in constructors and replaces them with this API.
Error handling is still replaced to EH_THROW in some cases to handle
other, domain-specific errors in constructors.
2015-04-06 11:27:34 +02:00
Nikita Popov
f920f974c4
Clarify that some zpp errors are just for debugging
...
These occur when the extension author messed up, not during normal
script execution.
Make these core errors and show them even with PARAMS_QUIET.
2015-04-04 10:28:37 +02:00
Dmitry Stogov
ad863c1740
Convert fatal errors into EngineException
2015-04-02 14:19:52 +03:00
Dmitry Stogov
53d20140fb
Fixed performance degradation introduced with lateast EnfineException related changes.
...
Restore original errors order in executor.
2015-04-02 03:56:42 +03:00
Dmitry Stogov
ea09a9fa32
Convert fatal errors into EngineExceptions
...
Make zval_update_constant_ex(), zval_update_constant(), zend_update_class_constants() and zend_ast_evaluate() return SUCCESS or FAILURE.
2015-04-02 02:05:25 +03:00
Dmitry Stogov
ec760d8fff
Convert fatal errors into EngineExceptions
2015-04-01 20:01:57 +03:00
Dmitry Stogov
780a8123fe
Convert fatal errors into EngineExceptions
2015-04-01 16:48:15 +03:00
Dmitry Stogov
acfc31c0f8
Use zend_error_noreturn() for fatal errors
2015-04-01 13:32:23 +03:00
Nikita Popov
085774997b
Drop support for static calls from incompatible context
...
Implemented by NULLing $this.
2015-04-01 11:42:05 +02:00
Nikita Popov
8d00385871
Reclassify E_STRICT notices
...
Per RFC https://wiki.php.net/rfc/reclassify_e_strict
While reviewing this, found that there are still three E_STRICTs
left in libraries - need to discuss those.
2015-04-01 11:17:55 +02:00
Dmitry Stogov
1018f462d8
Patch improvement:
...
Removed the corresponding core code.
Fixed ext/com_dotnet and ext/date.
Refactored ext/intl changes.
Improved ext/fileinfo and ext/pdo changes.
Fixed tests.
2015-03-30 18:53:38 +03:00
Kalle Sommer Nielsen
02be73b5fa
Constness to zend_get_object_type(), thanks Michael!
2015-03-25 07:01:04 +01:00
Kalle Sommer Nielsen
927d53fda4
Change "Cannot redeclare class X" into "Cannot redeclare class/interface/trait X", meaning that the following:
...
C:\> php -r "trait A { } trait A { }"
Will now properly print "Cannot redeclare trait A" instead of "Cannot redeclare class A" to make error messages a tiny bit clearer. Admittedly, a better solution can most likely be made by actually telling what the colliding object is a type of.
Internally this adds a new function:
zend_get_object_type()
2015-03-25 06:31:11 +01:00
Nikita Popov
a50e9d87f2
Partially revert "Fix uninitialized value condition"
...
This reverts commit e874f76096
,
which broke zpp quite mode.
Only the initialization of the "severity" variable is retained.
2015-03-22 09:25:32 +01:00
Bob Weinand
e874f76096
Fix uninitialized value condition
2015-03-22 00:14:47 +01:00
Dmitry Stogov
35f9b90bb8
ZPP changed to lazely check for "strict/weak" only if it's really necessary.
...
Cleanup.
2015-03-20 23:18:52 +03:00
Dmitry Stogov
5935612666
Improved type hinting:
...
EX_PREV_USES_STRICT_TYPES() and family changed/renamed to fit with other macros
Optimized zend_verify_internal_arg_type() and family (they don't need "strict" argument anymore)
Standerd ZPP is called from VM only for weak type check or strict exception (int -> double)
Fixed ZEND_RECV_VARIADIC
Fixed ZEND_STRLEN
TODO: should we accept IS_NULL for non-nullable arguments?
2015-03-20 16:04:04 +03:00
Dmitry Stogov
44669e8f41
Fixed white spaces
2015-03-20 11:10:29 +03:00
Anthony Ferrara
7044f9c6df
Refactor as to not use call info, but add the flag to the op_array.
2015-03-19 13:30:11 -04:00
Anthony Ferrara
0ef80ac351
Fix severity issues with callbacks, start work porting ZEND_STRLEN opcode to work with strict mode, more refactoring to come
2015-03-19 12:26:34 -04:00
Anthony Ferrara
78d2399493
Fix C89 compatibility by moving a misplaced if statement
2015-03-18 18:38:16 -04:00
Anthony Ferrara
579e7fa457
Style cleanup, as well as fixing bug with missing argument for WRONG_PARAM_COUNT_WITH_RETVAL
2015-03-18 15:45:16 -04:00
Anthony Ferrara
8be4266f6a
Clean up API renames for zend_wrong_param_count to maintain BC, introducing a zend_wrong_param_count_ex() function when you know strict value
2015-03-18 15:42:49 -04:00
Anthony Ferrara
7feebead1b
Refactor error implementation significantly to centralize error mode behavior. Add zend_internal_type_error() function
2015-03-18 12:23:09 -04:00
Anthony Ferrara
d22bfb8aa6
Merge in master, fix merge conflicts and update patch to support exceptions everywhere
2015-03-18 10:50:11 -04:00