Commit Graph

112328 Commits

Author SHA1 Message Date
Nikita Popov
6bebe833a2 Fix use-after-free in stream freeing during shutdown
Streams will be freed in an unpredictable order during shutdown.
Ignore explicit calls to php_stream_close() entirely to avoid
use-after-free -- instead let the stream resource destructor
deal with it. We have to account for a few special cases:

 * Enclosed streams should be freed, as the resource destructor
   will forward to the enclosing stream.
 * Stream cookies also directly free streams, because we delegate
   to the cookie destruction if one exists.
 * Mysqlnd also directly frees streams, because it explicitly
   removes stream resources (because mysqlnd!)
2019-06-27 09:45:23 +02:00
Peter Kokot
2079b09854 Clean headers checks
Some headers were checked multiple times in the main configure.ac file
and in the bundled extensions or SAPIs themselves. Also many of these
checks are then used accross other extensions or SAPIs so a central
configure.ac makes most sense for these checks.
2019-06-27 02:45:09 +02:00
Dmitry Stogov
83b99527df Avoid double checks on early binding 2019-06-27 02:13:06 +03:00
Peter Kokot
798fed3b0d Remove warnings for bison and re2c checks
This patch removes warnings when lexer and parser files are already
generated. For example, when downloading a PHP release. Realistically,
it is not so trivial to rebuild lexer and parser files without removing
them first. And considering that tarballs don't have cleaning tools
such as Git, this would require manual removali.

Related also to https://bugs.gentoo.org/593278
2019-06-27 00:59:59 +02:00
Peter Kokot
4ff44a9161 Fix concurrent testing of bug 61964
When tests are run concurrently using the -j option there might be a
change of failure and writing to the same directory from both tests.

Use test filenames for generated temp dirs
2019-06-27 00:27:10 +02:00
Peter Kokot
a29bf46b68 Fix posix_errno test without PCNTL dep
When PCNTL extension is not enabled, the SIGKILL constant is also not
available.
2019-06-27 00:24:37 +02:00
Peter Kokot
6ef2f04a75 Remove unused HAVE_DATE and HAVE_SPL symbols
These two are never defined anymore since PHP 7.4 and can be
considered to have always available date and hash extensions.
2019-06-26 23:30:58 +02:00
Peter Kokot
cc4134c04e Remove HAVE_STRTOD and strtod check
There is no need to check for the strtod function. It is part of C89
standard which PHP-7.4+ supports.

http://port70.net/~nsz/c/c89/c89-draft.html#4.10.1.4
2019-06-26 23:10:55 +02:00
Peter Kokot
537844cb1d Set Computer English language for credits sorting
This makes the script a bit more portable when used on systems with
different LC_ALL and LANG settings.
2019-06-26 22:35:55 +02:00
Christoph M. Becker
81a403211e Merge branch 'PHP-7.3' into PHP-7.4
* PHP-7.3:
  Remove stream_socket_sendto.phpt
2019-06-26 17:02:08 +02:00
Christoph M. Becker
801ab18ea7 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Remove stream_socket_sendto.phpt
2019-06-26 17:01:29 +02:00
Nikita Popov
7d28a24c66 Remove stream_socket_sendto.phpt
Fails for me locally due to different number of warnings with
different messages. Rather than adding more wildcards I'm dropping
this test entirely, as it doesn't seem to test anything particularly
useful.

(cherry picked from commit 84333cad67)
2019-06-26 16:58:37 +02:00
Dmitry Stogov
36b7021e2c Private methods don't have to be duplicated 2019-06-26 13:27:13 +03:00
Nikita Popov
788a68900d Fix xml doc leak in soap 2019-06-26 11:43:11 +02:00
Nikita Popov
80958d0f90 Use ldap_destroy instead of ldap_unbind_ext 2019-06-26 11:43:11 +02:00
Nikita Popov
698dd32b03 Fix fpm limit_extensions leak
The logic here is somewhat ugly because the worker pool structure
gets freed early, so we need to explicitly transfer ownership.
2019-06-26 11:40:39 +02:00
Dmitry Stogov
f7faa62c43 Reorder conditions to minimize number of checks on fast path 2019-06-26 01:00:31 +03:00
Dmitry Stogov
6288fc19dd Remove always true/false conditions, remove dead conde and simplify code. 2019-06-26 00:32:22 +03:00
Dmitry Stogov
215b5a7db8 Replace previosly checked conditions by ZEND_ASSERT() 2019-06-25 18:26:56 +03:00
Dmitry Stogov
f09d41ffc0 Fixed variance check for abstract constructor during erlay binding 2019-06-25 17:43:46 +03:00
Dmitry Stogov
ccbc121cb1 Cleanup 2019-06-25 16:37:42 +03:00
Nikita Popov
0f3ca15bb7 FFI: Perform bitfield operations byte-wise
Otherwise we may perform reads/writes outside the allocation, as
already happens in 032.phpt.
2019-06-25 14:28:58 +02:00
Nikita Popov
42b22d3a94 Fix out of bounds write in phpdbg
It seems that this code has a peculiar interpretation of "len",
where it actually points to the last character, not one past it.
So we need +1 here for that extra char and another +1 for the
terminating null byte.
2019-06-25 14:28:58 +02:00
Nikita Popov
8757f30cc7 Fix CURLINFO_COOKIELIST leak 2019-06-25 14:28:58 +02:00
Nikita Popov
8277acefbd Fix leak on sqlite3 open error
sqlite3_open creates the database object even if the operation
fails.
2019-06-25 14:28:58 +02:00
Nikita Popov
6fcae63f61 Fix SSL_CTX leak in ftp extension
SSL_CTX is a refcounted structure, which will be held by the SSL
handle, so we can free it here.
2019-06-25 14:28:58 +02:00
Nikita Popov
b53bb3c15b Fix UConverter leak 2019-06-25 14:28:58 +02:00
Nikita Popov
77f7ec5152 Fix TimeZone leak in intl MessageFormat
I'm just giving each format a distinct owned object here ... sharing
it looks complicated.
2019-06-25 14:28:58 +02:00
Nikita Popov
c7962207d7 Fix stream leak in phar cache_list 2019-06-25 14:28:58 +02:00
Nikita Popov
74a7d00846 run-tests: Don't die unnecessarily
die/exit leak memory, don't use them if we don't need to.
2019-06-25 14:28:58 +02:00
Dmitry Stogov
1d534b9da5 Set ZEND_ACC_LINKED flag after early binding (for consistency) 2019-06-25 15:05:27 +03:00
Dmitry Stogov
e8f1f70101 Reduce overhead of delayed early binding 2019-06-25 14:20:41 +03:00
Christoph M. Becker
ead40e31e9 Merge branch 'PHP-7.3' into PHP-7.4
* PHP-7.3:
  Fix #78202: Opcache stats for cache hits are capped at 32bit NUM
2019-06-25 13:06:20 +02:00
Christoph M. Becker
18bba63f39 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Fix #78202: Opcache stats for cache hits are capped at 32bit NUM
2019-06-25 13:04:28 +02:00
Christoph M. Becker
4366f22dfc Fix #78202: Opcache stats for cache hits are capped at 32bit NUM
We use the proper format specifiers now.
2019-06-25 13:00:28 +02:00
Dmitry Stogov
bd0cb99d8c Prevent useless hash lookups 2019-06-25 12:41:06 +03:00
Derick Rethans
d8e6054f46 Update NEWS for 7.4.0alpha3 2019-06-25 09:03:00 +00:00
Derick Rethans
7657741997 Update NEWS for PHP 7.4.0alpha2 2019-06-25 09:01:40 +00:00
Dmitry Stogov
759f4ecd8b Keep lowercased parent class name as second argument of DECLARE_CLASS to avoid extra work at run-time 2019-06-25 11:30:58 +03:00
Nikita Popov
43dd1ac570 Avoid confusing gotos in phar_split_cache_list 2019-06-25 10:25:44 +02:00
Nikita Popov
31123de0c8 Fix EVP_PKEY leak in phar 2019-06-25 10:25:44 +02:00
Nikita Popov
3a36e68c49 Don't force USE_ZEND_ALLOC=0 in run-tests.php
USE_ZEND_ALLOC=0 is useful not just for valgrind ... we should not
force USE_ZEND_ALLOC=1 if the user explicitly disabled it.
2019-06-25 10:25:44 +02:00
Nikita Popov
46bad1d679 Fix region leak in mb_ereg_replace 2019-06-25 10:25:44 +02:00
Dmitry Stogov
0f29fb5cd8 Fixed bug 78175 (Preloading must store default values of static variables and properties) 2019-06-24 20:32:27 +03:00
Christoph M. Becker
94df6dc3fd Split test case
This test is failing on AppVeyor almost all of the time, so splitting
it seems appropriate.  This also allows us to rid php_cli_server_stop()
which was only used by this test case.
2019-06-24 14:08:11 +02:00
Nikita Popov
df27bfe58b Add debugging code to time_sleep_until test 2019-06-22 10:19:49 +02:00
Derick Rethans
d3112adf7f Merge branch 'bug67348-mysqli-stat' into PHP-7.4 2019-06-21 16:52:15 +01:00
Derick Rethans
579562176b Fixed bug #67348: Reading $dbc->stat modifies $dbc->affected_rows 2019-06-21 16:51:52 +01:00
Nikita Popov
152ccfb08d Fix stack leak in phpdbg 2019-06-21 17:01:25 +02:00
Nikita Popov
a7bcfee9c9 Fix prompt leak in phpdbg 2019-06-21 17:01:18 +02:00