Peter Kokot [Tue, 12 Jun 2018 18:01:37 +0000 (20:01 +0200)]
Remove old SVN keywords substitutions
When the PHP source code was versioned in Subversion, there was
possible to substitute certain keywords such as $Id$ with revision
number, last change time and author name. Such approach is not used
in Git so this patch removes these outdated artifacts from source
code files.
Peter Kokot [Tue, 12 Jun 2018 14:09:30 +0000 (16:09 +0200)]
Remove SVN revision from phar phpinfo output
The SVN revision was utilized with Subversion. The Git ident
attribute applies only for particular file and since other core
extensions don't output this information anymore this patch
removes it from the phpinfo output to sync and make the phpinfo
core extensions more consistent.
I've introduced a new CompileError type, from which ParseError
inherits. These errors are not parse errors in the narrow sense
of the term, even though they happen to be generated during
parsing in our implementation. Additionally reusing the ParseError
class for this purpose would change existing error messages (if
the exception is not caught) from a "Fatal error:" to a "Parse
error:" prefix, and also the error kind from E_COMPILE_ERROR to
E_PARSE.
Peter Kokot [Thu, 14 Jun 2018 02:45:28 +0000 (04:45 +0200)]
Remove old and unused warnings when building apache
The configure script already warns users at the beginning with
unrecognized options warning so additional check is not required. These
sapis were also removed from the PHP core.
Peter Kokot [Wed, 13 Jun 2018 07:56:32 +0000 (09:56 +0200)]
Remove old SVN keywords substitutions from xsl and sockets tests
When the PHP source code was versioned in Subversion, there was
possible to substitute certain keywords such as $Id$ with revision
number, last change time and author name. Such approach is not used
in Git so this patch removes these outdated artifacts from the xsl
and sockets extensions tests files.
Xinchen Hui [Tue, 12 Jun 2018 01:40:34 +0000 (09:40 +0800)]
supplemental fix for bug #76427
there are two parts to make this problem visible , the first is
our new gc new freeing zvals in an opposite direction(compare to 7.2)
the second is zend_object_store_del doesn't check IS_VALID since 7.3
(using assertion instead)
Xinchen Hui [Mon, 11 Jun 2018 13:01:10 +0000 (21:01 +0800)]
Merge branch 'master' of git.php.net:/php-src
* 'master' of git.php.net:/php-src:
Remove inappropriate FreeLibrary calls
Remove inappropriate FreeLibrary call
The ZEND_EXTENSION change is merged with xdebug now so we can drop this for master only
Fixed bug #76443 (php+php_interbase.dll crash on module_shutdown)
Peter Kokot [Sun, 10 Jun 2018 18:42:57 +0000 (20:42 +0200)]
Remove revision from OCI8 extension
The revisions were used in SVN. Other core extensions don't
provide this information in the phpinfo output anymore so
this patch removes it from the OCI8 info output to make it
consistent with other extensions.
According to https://wiki.php.net/rfc/image2wbmp, we deprecate
`image2wbmp()`, rename the `$threshold` parameter to `$foreground`, and
remove superfluous code.
Nikita Popov [Sat, 9 Jun 2018 19:28:30 +0000 (21:28 +0200)]
Fix handling of ERROR zval in op1 of ASSIGN_REF
If op1 is ERROR the behavior is to not perform any assignment and
return NULL. However, if the RHS was a by-value returning function,
we'd instead emit a notice and return the RHS as the return value
(even though the value was not assigned to anything -- the temporary
is immediately destroyed).
This normalized the behavior to always check for an ERROR in op1
first.
Anatol Belski [Sat, 9 Jun 2018 18:27:16 +0000 (20:27 +0200)]
Add check for variable size array feature
Usage of VLA is not portable, wile supported by some compilers. For
instance, GCC supports it even if -std=c89 is passed. Even if we would
switch to C99, it would be still not portable at least with VC++. Thus,
adding a centralized check so such code can be guarded and moved to
alloca() if needed.
Nikita Popov [Sat, 9 Jun 2018 16:36:54 +0000 (18:36 +0200)]
Error on by-ref assign to overloaded prop returning ref
This error was already thrown if __get() was used -- however not
if it returned by reference. This is incorrect, because the
reference return makes no difference to a by-reference assignment,
which has reference-breaking semantics. The result was that the
assignment was accepted silently, even though it didn't do anything
(not even the value was assigned, let alone the reference).
Fix #76409: heap use after free in _php_stream_free
We must not close the stream in exif_read_from_impl(), since it is the
responsibility of the (caller's) caller to do so, if it actually opened
the stream.
We simplify the reproduce script, which is actually about supplying a
path to a directory (opposed to a regular file), and use `.` instead of
`/` to also make it work on Windows.