Nikita Popov
ddb550f1f8
Fix session test
2021-05-28 09:45:06 +02:00
Máté Kocsis
6fb08f4607
Fix return type of SessionHandler::gc()
...
Relates to GH-7006
2021-05-27 23:07:27 +02:00
Máté Kocsis
b165197f0f
Fix session cleanup
2021-05-27 23:03:19 +02:00
Máté Kocsis
ffb1ff371c
Fix return type of SessionHandler::read()
2021-04-20 11:56:54 +02:00
Christoph M. Becker
733b514326
Merge branch 'PHP-7.4' into PHP-8.0
...
* PHP-7.4:
Properly initialize PS(mod) on RINIT
2021-03-23 13:13:43 +01:00
Christoph M. Becker
688e56d0ac
Properly initialize PS(mod) on RINIT
...
We need to do that in case a user handler has been set. However, we
can't do that in `php_rinit_session_globals()` since that function is
called by PHP function `session_destroy()` too, but in that case we
don't want to reset PS(mod).
Closes GH-6795.
2021-03-23 13:12:19 +01:00
Christoph M. Becker
90be86fc91
Merge branch 'PHP-7.4' into PHP-8.0
...
* PHP-7.4:
Fix #80889 : amendment
2021-03-22 22:49:46 +01:00
Christoph M. Becker
838951c2d6
Fix #80889 : amendment
...
`session_set_save_handler()` may be called with callables instead of an
object; we need to cater to that as well.
We also extract a set_user_save_handler_ini() function to avoid code
duplication.
Closes GH-6796.
2021-03-22 22:17:35 +01:00
Christoph M. Becker
2a1ed81ffc
Merge branch 'PHP-7.4' into PHP-8.0
...
* PHP-7.4:
Fix #80889 : Cannot set save handler when save_handler is invalid
2021-03-19 17:03:54 +01:00
Christoph M. Becker
06bfada99b
Fix #80889 : Cannot set save handler when save_handler is invalid
...
There is no need to require a (valid) save_handler to be set, when a
user handler is supposed to be set. We just have to make sure, that
no user handler is already set in this case.
Closes GH-6788.
2021-03-19 16:59:54 +01:00
Christoph M. Becker
6dcd640f35
Merge branch 'PHP-7.4' into PHP-8.0
...
* PHP-7.4:
Fix #80774 : session_name() problem with backslash
2021-02-22 12:35:23 +01:00
Christoph M. Becker
d7c98ca1ac
Fix #80774 : session_name() problem with backslash
...
Since we do no longer URL decode cookie names[1], we must not URL
encode the session name. We need to prevent broken Set-Cookie headers,
by rejecting names which contain invalid characters.
[1] <http://git.php.net/?p=php-src.git;a=commit;h=6559fe912661ca5ce5f0eeeb591d928451428ed0 >
Closes GH-6711.
2021-02-22 12:32:56 +01:00
Nikita Popov
4633e70ab1
Fixed bug #80377
...
Make sure the $PHP_THREAD_SAFETY variable is always available
when configuring extensions. It was previously available for
phpized extensions, but for in-tree builds it was being set
too late.
Then, use $PHP_THREAD_SAFETY instead of $enable_zts to check for
ZTS in bundled extensions, which makes sure these checks also
work for phpize builds.
2020-11-25 11:47:05 +01:00
Dmitry Stogov
7fc2a3e15e
Revert "Fixed bug #80377 "
...
This reverts commit fc26ad9b12 .
2020-11-25 01:10:26 +03:00
Nikita Popov
fc26ad9b12
Fixed bug #80377
...
Use $PHP_THREAD_SAFETY instead of $enable_zts to check for ZTS.
This variable is also available for phpize builds, while enable_zts
is only present for in-tree builds.
2020-11-24 15:52:41 +01:00
Máté Kocsis
efe6006ced
Review parameter names in ext/session
...
Closes GH-6239
2020-09-30 13:21:17 +02:00
Nikita Popov
8067cf4752
Use callable type in register_shutdown_function()
...
To make things a bit less weird, split off the function name into
a zval stored separately from the arguments. This allows us to
use normal zpp and get standard behavior.
2020-09-25 14:48:33 +02:00
George Peter Banyard
82e14ff8e7
Drop usage of E_RECOVERABLE_ERROR in Session extension
2020-09-22 19:11:30 +01:00
Nikita Popov
c5401854fc
Run tidy
...
This should fix most of the remaining issues with tabs and spaces
being mixed in tests.
2020-09-18 14:28:32 +02:00
Máté Kocsis
46c0c82a0f
Declare array|int and object-of-class|int types in stubs
...
Closes GH-6081
Co-Authored-By: Nikita Popov <nikic@php.net >
2020-09-14 11:59:32 +02:00
Christoph M. Becker
853b7945bc
Unmark tests as XFAIL on Windows
...
This issue has been resolved[1], so the tests are expected to pass on
Windows again.
[1] <https://github.com/php/php-src/commit/0a03291b51e7cf199c06ba4ae914277ce0ac4202 >
2020-09-14 10:14:21 +02:00
Christoph M. Becker
873c087398
Mark tests as XFAIL on Windows
...
These tests segfault with tracing JIT on Windows as of a recent
commit[1]. A link to a backtrace is available in a comment[2]. For
now, we mark these tests as XFAIL, to keep AppVeyor CI helpful.
[1] <https://github.com/php/php-src/commit/817ae414962480d133ed76618b88b3e7ba482718 >
[2] <https://github.com/php/php-src/commit/817ae414962480d133ed76618b88b3e7ba482718#commitcomment-42227420 >
2020-09-13 15:38:57 +02:00
Máté Kocsis
f293e6b920
Clean up ext/session errors
...
Closes GH-6111
2020-09-11 11:59:04 +02:00
Máté Kocsis
9975986b7e
Improve error messages mentioning parameters instead of arguments
...
Closes GH-5999
2020-09-09 10:47:43 +02:00
Dmitry Stogov
4a2ae84188
Add "const". Move constant strings to read-only memory.
2020-09-07 21:35:48 +03:00
Nikita Popov
2ca5d663f3
Avoid fatal error in session handler
2020-08-14 15:19:18 +02:00
Nikita Popov
c3ddda4e3c
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Fixed bug #79724
2020-08-13 17:26:20 +02:00
Nikita Popov
8bda799d6f
Fixed bug #79724
2020-08-13 17:25:51 +02:00
Máté Kocsis
7aacc705d0
Add many missing closing PHP tags to tests
...
Closes GH-5958
2020-08-09 22:03:36 +02:00
Nikita Popov
52047addc7
Only force log startup errors if display_startup_errors disabled
...
Otherwise this results in duplicate errors.
Closes GH-5941.
2020-08-05 18:17:00 +02:00
Nikita Popov
c48b745f00
Promote "undefined array key" notice to warning
...
This implements the last remaining part of the
https://wiki.php.net/rfc/engine_warnings RFC.
Closes GH-5927.
2020-08-03 14:40:50 +02:00
Nikita Popov
b891adea8d
Don't suppress notices in rfc1867 tests
...
The references notices in debug builds don't seem to be present
anymore.
2020-08-03 11:58:59 +02:00
Máté Kocsis
0d330e1a02
Add a few missing parameter types in stubs
...
Related to GH-5627
2020-07-30 14:26:45 +02:00
Christoph M. Becker
dd30a3d8ce
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Fix brittle test
2020-07-22 20:47:16 +02:00
Christoph M. Becker
0a59a71947
Merge branch 'PHP-7.3' into PHP-7.4
...
* PHP-7.3:
Fix brittle test
2020-07-22 20:46:28 +02:00
Christoph M. Becker
6b99a8be4d
Fix brittle test
...
This test fails occasionally due to timing issues, because the session
file may have been unlinked by the first `session_start()`'s GC. We
adapt the test expectation to this reality.
2020-07-22 20:45:56 +02:00
Nikita Popov
952222d067
Move SessionHandler sanity checks after zpp
2020-07-17 16:56:50 +02:00
Máté Kocsis
d30cd7d7e7
Review the usage of apostrophes in error messages
...
Closes GH-5590
2020-07-10 21:05:28 +02:00
Max Semenik
2b5de6f839
Remove proto comments from C files
...
Closes GH-5758
2020-07-06 21:13:34 +02:00
Nikita Popov
344c077400
Use zend_string_equals API in a couple places
2020-07-03 17:02:28 +02:00
Nikita Popov
75a04eac97
Make exit() unwind properly
...
exit() is now internally implemented by throwing an exception,
performing a normal stack unwind and a clean shutdown. This ensures
that no persistent resource leaks occur.
The exception is internal, cannot be caught and does not result in
the execution of finally blocks. This may be relaxed in the future.
Closes GH-5768.
2020-06-29 15:50:12 +02:00
Máté Kocsis
b5c7a83dca
Remove unnecessary PHPDoc-alike blocks from tests
...
Closes GH-5759
2020-06-24 13:13:44 +02:00
Nikita Popov
c9b9f525a9
Include stub hash in generated arginfo files
...
The hash is used to check whether the arginfo file needs to be
regenerated. PHP-Parser will only be downloaded if this is actually
necessary.
This ensures that release artifacts will never try to regenerate
stubs and thus fetch PHP-Parser, as long as you do not modify any
files.
Closes GH-5739.
2020-06-24 09:55:19 +02:00
Máté Kocsis
b981662855
Fix a couple of UNKNOWN default values in ext/session
...
Closes GH-5752
2020-06-23 15:42:59 +02:00
Christoph M. Becker
92c4b06513
Use ZEND_UNREACHABLE() instead of ZEND_ASSERT(0)
...
Instead of marking unreachable code with `ZEND_ASSERT(0)`, we introduce
`ZEND_UNREACHABLE()`, so that MSVC which does not consider `assert(0)`
to mark unreachable code does no longer trigger C4715[1] warnings in
debug builds. This may be useful for other compilers as well.
[1] <https://docs.microsoft.com/de-de/cpp/error-messages/compiler-warnings/compiler-warning-level-1-c4715?view=vs-2019 >
2020-06-16 18:39:09 +02:00
Christoph M. Becker
08858e7cca
Fix #73529 : session_decode() silently fails on wrong input
...
The `php_serialize` decode function has to return `FAILURE`, if the
unserialization failed on anything but an empty string.
The `php` decode function has also to return `FAILURE`, if there is
trailing garbage in the string.
2020-06-10 16:48:49 +02:00
twosee
88355dd338
Constify char * arguments of APIs
...
Closes GH-5676.
2020-06-08 10:38:45 +02:00
Máté Kocsis
aa9b0ccda8
Add tests to check mismatching function signatures
...
Closes GH-5666
2020-06-06 09:23:34 +02:00
Christoph M. Becker
5a04796f76
Fix MSVC level 1 (severe) warnings
...
We fix (hopefully) all instances of:
* <https://docs.microsoft.com/en-us/cpp/error-messages/compiler-warnings/compiler-warning-level-1-c4005 >
* <https://docs.microsoft.com/en-us/cpp/error-messages/compiler-warnings/compiler-warning-level-1-c4024 >
* <https://docs.microsoft.com/en-us/cpp/error-messages/compiler-warnings/compiler-warning-level-1-c4028 >
* <https://docs.microsoft.com/en-us/cpp/error-messages/compiler-warnings/compiler-warning-level-1-c4047 >
* <https://docs.microsoft.com/en-us/cpp/error-messages/compiler-warnings/compiler-warning-level-1-c4087 >
* <https://docs.microsoft.com/en-us/cpp/error-messages/compiler-warnings/compiler-warning-level-1-c4090 >
* <https://docs.microsoft.com/en-us/cpp/error-messages/compiler-warnings/compiler-warning-level-1-c4273 >
* <https://docs.microsoft.com/en-us/cpp/error-messages/compiler-warnings/compiler-warning-level-1-c4312 >
`zend_llist_add_element()` and `zend_llist_prepend_element()` now
explicitly expect a *const* pointer.
We use the macro `ZEND_VOIDP()` instead of a `(void*)` cast to suppress
C4090; this should prevent accidential removal of the cast by
clarifying the intention, and makes it easier to remove the casts if
the issue[1] will be resolved sometime.
[1] <https://developercommunity.visualstudio.com/content/problem/390711/c-compiler-incorrect-propagation-of-const-qualifie.html >
2020-06-05 11:17:05 +02:00
Máté Kocsis
fbe30592d6
Improve type error messages when an object is given
...
From now on, we always display the given object's type instead of just reporting "object".
Additionally, make the format of return type errors match the format of argument errors.
Closes GH-5625
2020-05-26 19:06:19 +02:00