| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|\ \ \
| |/ / |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
RFC: https://wiki.php.net/rfc/tostring_exceptions
And convert some object to string conversion related recoverable
fatal errors into Error exceptions.
Improve exception safety of internal code performing string
conversions.
|
|\ \ \
| |/ /
| | |
| | |
| | | |
* PHP-7.4:
Fix ZTS issue regarding new Windows CTRL handling API
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
php_win32_signal_system_ctrl_handler() is called from a kernel thread,
so the former initialization of `vm_interrupt_flag` has no effect,
since it is defined as thread-local. This is, however, not necessary,
since the CTRL signal handling is supposed to work only for the main
thread anyway. We therefore change `vm_interrupt_flag` and the related
variables to true globals.
This also allows us to unmark the respective test case as XFAIL.
Furthermore, `vm_interrupt_flag` is declared as `zend_bool *`, so we
better treat it such.
|
|\ \ \
| |/ /
| | |
| | |
| | | |
* PHP-7.4:
Revert "Rename *.l files to *.re"
|
| | |
| | |
| | |
| | | |
This reverts commit 969047749d33bb88a0573aa91a57e2070335111a.
|
|\ \ \
| |/ /
| | |
| | |
| | | |
* PHP-7.4:
Rename *.l files to *.re
|
| | |
| | |
| | |
| | |
| | | |
This syncs PHP lexer files to all use *.re extension. The *.re files are
processed with the RE2C tool.
|
|\ \ \
| |/ /
| | |
| | |
| | |
| | | |
* PHP-7.4:
Remove unused symbol definition
Remove redundant memory.h file
|
| | |
| | |
| | |
| | |
| | | |
The memory.h file is part of the pre-C89 era and is on today's systems
only a simple wrapper for including the final string.h header file.
|
|\ \ \
| |/ /
| | |
| | |
| | | |
* PHP-7.4:
Fix erroneous assertions
|
| |\ \
| | |/
| | |
| | |
| | | |
* PHP-7.3:
Fix erroneous assertions
|
| | |\
| | | |
| | | |
| | | |
| | | | |
* PHP-7.2:
Fix erroneous assertions
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Since PHP strings are binary safe (i.e. they may contain NUL bytes), we
must not assume that strlen()/wcslen() actually return the length of
the string. Only if the given in_len is zero, it is safe to assert
this.
|
|\ \ \ \
| |/ / /
| | | |
| | | |
| | | | |
* PHP-7.4:
Fix #77821: Potential heap corruption in TSendMail()
|
| |\ \ \
| | |/ /
| | | |
| | | |
| | | | |
* PHP-7.3:
Fix #77821: Potential heap corruption in TSendMail()
|
| | |\ \
| | | |/
| | | |
| | | |
| | | | |
* PHP-7.2:
Fix #77821: Potential heap corruption in TSendMail()
|
| | | |\
| | | | |
| | | | |
| | | | |
| | | | | |
* PHP-7.1:
Fix #77821: Potential heap corruption in TSendMail()
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
`zend_string_tolower()` returns a copy (not a duplicate) of the given
string, if it is already in lower case. In this case we must not not
`zend_string_free()` both strings. The cleanest solution is to call
` zend_string_release()` on both strings, which properly handles the
refcount.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This patch adds missing newlines, trims multiple redundant final
newlines into a single one, and trims redundant leading newlines.
According to POSIX, a line is a sequence of zero or more non-' <newline>'
characters plus a terminating '<newline>' character. [1] Files should
normally have at least one final newline character.
C89 [2] and later standards [3] mention a final newline:
"A source file that is not empty shall end in a new-line character,
which shall not be immediately preceded by a backslash character."
Although it is not mandatory for all files to have a final newline
fixed, a more consistent and homogeneous approach brings less of commit
differences issues and a better development experience in certain text
editors and IDEs.
[1] http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap03.html#tag_03_206
[2] https://port70.net/~nsz/c/c89/c89-draft.html#2.1.1.2
[3] https://port70.net/~nsz/c/c99/n1256.html#5.1.1.2
|
| | | | | |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This patch simplifies line endings tracked in the Git repository and
syncs them to all include the LF style instead of the CRLF files.
Newline characters:
- LF (\n) (*nix and Mac)
- CRLF (\r\n) (Windows)
- CR (\r) (old Mac, obsolete)
To see which line endings are in the index and in the working copy the
following command can be used:
`git ls-files --eol`
Git additionally provides `.gitattributes` file to specify if some files
need to have specific line endings on all platforms (either CRLF or LF).
Changed files shouldn't cause issues on modern Windows platforms because
also Git can do output conversion is core.autocrlf=true is set on
Windows and use CRLF newlines in all files in the working tree.
Unless CRLF files are tracked specifically, Git by default tracks all
files in the index using LF newlines.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
To solve issues detected during testing, we backport the following
commits to PHP 7.2:
129c5c1181bf344b37e13fd6dc5dfe76c13d7208
9ac133a0b3863ca4d9659140154ee237e5f4669a
ce72bc6b658c335dd37393d0beb28584e6805e97
|
|\ \ \ \ \
| |/ / / /
| | | | |
| | | | |
| | | | | |
* PHP-7.4:
Remove php.gif from the project root directory
|
| |\ \ \ \
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
* pull-request/4046:
Remove php.gif from the project root directory
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
The PHP logo is also displayed in the main README.md file using a shiny
SVG format so there is no need to use GIF format.
|
|\ \ \ \ \ \
| |/ / / / /
| | | | | |
| | | | | |
| | | | | | |
* PHP-7.4:
Fix parameter order
|
| |/ / / /
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
The parameter order of `php_sys_link()` should be identical on Windows
and POSIX, bug commit c9861bd[1] got that wrong.
[1] <http://git.php.net/?p=php-src.git;a=commit;h=c9861bd7a974ef1555395b879c1035a0bbc12ef1>
|
|\ \ \ \ \
| |/ / / /
| | | | |
| | | | |
| | | | | |
* PHP-7.4:
Remove PHP_READDIR_R_TYPE
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
The PHP_READDIR_R_TYPE m4 macro has been removed via
2b28f7189144a21e753dbc09efadd571121a82b9.
HAVE_POSIX_READDIR_R in windows header file is also not needed anymore.
|
|\ \ \ \ \
| |/ / / / |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
readdir_r() is deprecated in modern glibc versions. readdir() is
thread safe in practice, as long as there are no concurrent accesses
on the *same* directory stream.
|
|\ \ \ \ \
| |/ / / /
| | | | |
| | | | |
| | | | | |
* PHP-7.4:
Ensure double slashes are replaced by the path normalization
|
| |\ \ \ \
| | |/ / /
| | | | |
| | | | |
| | | | | |
* PHP-7.3:
Ensure double slashes are replaced by the path normalization
|
| | | | | |
|
|\ \ \ \ \
| |/ / / /
| | | | |
| | | | |
| | | | | |
* PHP-7.4:
Remove checks for locale.h, setlocale, localeconv
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
The `<loccale.h>` header file, setlocale, and localeconv are part of the
standard C89 [1] and on current systems can be used unconditionally.
Since PHP 7.4 requires at least C89 or greater, the `HAVE_LOCALE_H`,
`HAVE_SETLOCALE`, and `HAVE_LOCALECONV` symbols defined by Autoconf in
configure.ac [2] can be ommitted and simplifed.
The bundled libmagic (file) has also been patched already in version
5.35 and up in upstream location so when it will be patched also in
php-src the check for locale.h header is still left in the configure.ac
and in windows headers definition file.
[1] https://port70.net/~nsz/c/c89/c89-draft.html#4.4
[2] https://git.savannah.gnu.org/cgit/autoconf.git/tree/lib/autoconf/headers.m4
Omit the bundled libmagic files
|
|\ \ \ \ \
| |/ / / /
| | | | |
| | | | |
| | | | | |
* PHP-7.4:
Refactor AC_INIT in configure.ac and PHP versions
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Since Autoconf 2.53 the AC_INIT call with only a single argument has
been made obsolete and now includes several other optional arguments to
make installation experience a bit better by providing program version
and links to the project in the `./configure -h` output. This patch also
updates win build version. The phpize.m4 AC_INIT has been updated with
the call without arguments.
|
|\ \ \ \ \
| |/ / / /
| | | | |
| | | | |
| | | | | |
* PHP-7.4:
Fix ASAN configuration
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Commit 6a624c1[1] mostly replaced `COMPILER_NAME` with
`COMPILER_NAME_LONG` and `COMPILER_NAME_SHORT`, but not all
occurrences, what broke the Clang ASAN configuration. We fix this by
getting rid of `COMPILER_NAME` altogether.
[1] <http://git.php.net/?p=php-src.git;a=commit;h=6a624c1dfda0dbfaaff3e453e6cb58de12748fb3>
|
|\ \ \ \ \
| |/ / / /
| | | | |
| | | | |
| | | | | |
* PHP-7.4:
Improve ascii check
|
| | | | | |
|
|\ \ \ \ \
| |/ / / /
| | | | |
| | | | |
| | | | | |
* PHP-7.4:
Rework conditions and make them more future proof
|
| | | | | |
|
|\ \ \ \ \
| |/ / / /
| | | | |
| | | | |
| | | | | |
* PHP-7.4:
Implement stricter CRT check
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This aligns with the recommendations about VS2015, VS2017 and VS2019
compatibility.
More info below
https://devblogs.microsoft.com/cppblog/cpp-binary-compatibility-and-pain-free-upgrades-to-visual-studio-2019/
|
|\ \ \ \ \
| |/ / / /
| | | | |
| | | | |
| | | | |
| | | | | |
* PHP-7.4:
Rework the VS version evaluation
Implement stricter extension compatibility check
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
For the latest versions, refer also to the Visual Studio version, not to
the exact toolset version. The latest Visual Studio versions are moving
fast and the method existed previously is not sutable to keep up
anymore. Instead of refering to the exact toolset, it refers to the
Visual Studio version and implies the latest toolset available there.
That is still not ideal, another situation can arise where VS version is
not changed, but the toolset version is. It might be better to refer to
it a generic way in the future or even omit at all, and improve the
internal compatibility checks instead.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This hardens the dynamic module loading by checking the linker compatibility
between the core and the dynamic module. This likely should be extended
for the CRT as well, as 2015, 2017 and 2019 versions of Visual Studio
all have same DLL name for the CRT.
|