Commit graph

11642 commits

Author SHA1 Message Date
Peter Kokot
d3ca28f569 Remove HAVE_STRING_H
The C89 standard and later defines the `<string.h>` header as part of
the standard headers [1] and on current systems it is always present.

Code included also `<strings.h>` header as an alterinative in some
files. This kind of check was relevant on some older systems where the
`<strings.h>` file included definitions for the C89 compliant
`<string.h>`. Today such alternative check is not required anymore. The
`<strings.h>` file is part of the POSIX definition these days.

Also Autoconf suggests doing this and relying on C89 or above [2] and [3].

This patch also cleans few unused `<strings.h>` inclusions in the libmbfl.

[1]: https://port70.net/~nsz/c/c89/c89-draft.html#4.1.2
[2]: http://git.savannah.gnu.org/cgit/autoconf.git/tree/lib/autoconf/headers.m4
[3]: https://www.gnu.org/software/autoconf/manual/autoconf-2.69/autoconf.html
2018-09-18 05:32:08 +02:00
Anatol Belski
44fa6be16e Set correct error code and adapt test 2018-09-17 17:19:39 +02:00
Anatol Belski
321c0cc349 Fix localized error messages and memory leaks
The FormatMessage API needs to LocalFree the delivered error messages.
In cases where messages are delivered in non ASCII compatible encoding,
the messages might be unreadable. This aligns the error message encoding
with the encoding settings in PHP, the focus is UTF-8 as default.

Initialize error buffer

Avoid code duplication
2018-09-17 10:56:50 +02:00
Peter Kokot
03bbdf275a Make PHP development tools files executable
This patch makes few remaining PHP development tools files
executable and adds a shebang to them.

The `#!/usr/bin/env php` shebang provides running the script via
`./script.php` and uses env to find PHP script location on the system.
At the same time it still provides running the script with a user
defined PHP location using `php script.php`. Shebang is not visible in
the output of the generated file.
2018-09-17 00:02:36 +02:00
Gabriel Caruso
f72b6c5e19
Use EXPECT instead of EXPECTF when possible 2018-09-16 15:39:18 -03:00
Nikita Popov
dfa166e7ed Remove unused ZEND_FILE_LINE in i_zval_ptr_dtor 2018-09-16 17:16:26 +02:00
Christoph M. Becker
6da3a1e3ce Revert "Implement #67331: Have parse_ini_file add empty entries"
This reverts commit 3f3e914df3.

The commit broke some tests on Windows, and generally needs more
though.
2018-09-15 17:08:58 +02:00
Christoph M. Becker
3f3e914df3 Implement #67331: Have parse_ini_file add empty entries
Some INI processors allow to specify empty values by just giving the
key without the equals sign, for instance MySQL and Python.  It appears
to be sensible to add this possibility to our INI parser, so that it
can be used for such INI files as well.  We choose NULL as the value of
empty values.

This syntactical enhancement is a (minor) BC break, though, as can be
seen by the necessary change to bug49692.ini.  The “comment” formerly
has been simply ignored, but now it would be parsed as key with an
empty value.

This PR is based on Adam's former patch.
2018-09-15 15:37:01 +02:00
Peter Kokot
77118fc925 Remove HAVE_ASSERT_H
The `<assert.h>` header file is part of the standard C89 headers [1] and
on older systems there needed to be also a manual check if header is
present.

Since PHP requires at least C89 manual check and the `HAVE_ASSERT_H`
symbol defined by Autoconf in configure.ac can be both removed [2].

This patch also removes unused <assert.h> includes where c files don't
use the `assert()` macro.

Refs:
[1] https://port70.net/~nsz/c/c89/c89-draft.html#4.2
[2] https://git.savannah.gnu.org/cgit/autoconf.git/tree/lib/autoconf/headers.m4
2018-09-09 09:43:03 +02:00
Peter Kokot
29dc0470c8
Remove AC_FUNC_UTIME_NULL
Autoconf 2.59d (released in 2006) [1] started promoting several macros
as not relevant for newer systems, including the AC_FUNC_UTIME_NULL.

This macro checks if `utime(file, NULL)` sets file's timestamp to the
current time and defines the `HAVE_UTIME_NULL` symbol. This check was
relevant on very old systems (for example, 4.3BSD released in 1986) and
today can be omitted for systems with utime since it should be well
supported by now. [2]

Refs:
[1] http://git.savannah.gnu.org/cgit/autoconf.git/tree/NEWS
[2] https://www.gnu.org/software/autoconf/manual/autoconf-2.69/autoconf.html
2018-09-04 12:03:34 +02:00
Peter Kokot
eff22dc511
Remove AC_HEADER_DIRENT
Autoconf 2.59d (released in 2006) [1] started promoting several macros
as not relevant for newer systems anymore, including the `AC_HEADER_DIRENT`.

This macro checks which header defines the `DIR` type. If `<dirent.h>`
is available it defines the `HAVE_DIRENT_H` symbol. Since the `<dirent.h>`
header is already checked in the `configure.ac`, this check is not needed
anymore. This macro also additionally checks for SCO Xenix (discontinued,
latest release 1989) dir and x libraries. [2]

Commit 6ed790685f introduced also
`<sys/dir.h>`. This header exists from times of UNIX System V and
provided definition of DIR type on these systems such as 4.3BSD.
Today `<sys/dir.h>` is kept for backwards compatibility and includes
the `<dirent.h>` on current systems. With `dirent.h>` present this
include is no longer required.

Refs:
[1] http://git.savannah.gnu.org/cgit/autoconf.git/tree/NEWS
[2] https://www.gnu.org/software/autoconf/manual/autoconf-2.69/autoconf.html

Remove unused dirent.h includes
2018-09-04 12:01:24 +02:00
Joe Watkins
efbc05a5a8
Merge branch 'PHP-7.3'
* PHP-7.3:
  Fix bug #74764 and add a test case
2018-09-04 11:14:57 +02:00
Joe Watkins
6b5e7e6b42
Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Fix bug #74764 and add a test case
2018-09-04 11:13:14 +02:00
Joe Watkins
21f8cd2a92
Merge branch 'PHP-7.1' into PHP-7.2
* PHP-7.1:
  Fix bug #74764 and add a test case
2018-09-04 11:12:39 +02:00
Ville Hukkamaki
0f724453c0
Fix bug #74764 and add a test case 2018-09-04 11:12:04 +02:00
Anatol Belski
2476fb76a7 Fixed bug #76833, backport change to stream_socket_enable_crypto-win32.phpt from 7.3
It would probably be better to remove this test as it's too much
maintanance for a little gain.
2018-09-04 10:53:35 +02:00
Nikita Popov
e48e9c0002 Merge branch 'PHP-7.3' 2018-09-04 04:58:44 +02:00
Nikita Popov
6122f67492 Merge branch 'PHP-7.2' into PHP-7.3 2018-09-04 04:57:13 +02:00
Nikita Popov
fcf78dfb89 Merge branch 'PHP-7.1' into PHP-7.2 2018-09-04 04:55:15 +02:00
Ville Hukkamaki
742783c3ee Fixed bug #73457
Correctly report errors when opening FTP data connection.
2018-09-04 04:53:38 +02:00
Gabriel Caruso
6dd9fad0c0
Revert changes in test file
This reverts changes made in 2f700384 and 4fcaebba. This test is
supposed to run
only on Windows indeed, as in a Unix environment with a mail server
configured,
an email will be send. On Windows, only emptying the SMTP ini directives
is enough.
2018-08-31 08:48:48 -03:00
Gabriel Caruso
4fcaebbab8
Fix tests in some builds
Looks like the EXPECTREGEX was eating the =DONE= section
2018-08-31 08:09:14 -03:00
Peter Kokot
cbc785dc8c Remove AC_STRUCT_TM macro
Autoconf 2.59d (released in 2006) [1] started promoting several macros
as not relevant for newer systems anymore, including the `AC_STRUCT_TM`.

This macro checks if `struct tm` is defined in either `<sys/time.h>` or
`<time.h>` and defines the `TM_IN_SYS_TIME` symbol accordingly. This
check was relevant in times before the C89 for some embedded systems,
microcontrollers or very old systems. For newer systems it can be
avoided and the `<time.h>` should be included instead since current
systems should be well supported by now. [2]

Since PHP requires at least C89, this patch removes the obsolescent call
and time.h checks.

Refs:

- [1]: http://git.savannah.gnu.org/cgit/autoconf.git/tree/NEWS
- [2]: https://www.gnu.org/software/autoconf/manual/autoconf-2.69/html_node/Particular-Structures.html
2018-08-29 21:22:47 +02:00
Gabriel Caruso
2f7003847d
Make more tests run on Linux 2018-08-28 21:20:00 -03:00
Anatol Belski
8b4b41696e Merge branch 'PHP-7.3'
* PHP-7.3:
  Fixed bug #76803 ftruncate changes file pointer
2018-08-28 15:43:34 +02:00
Anatol Belski
7728160784 Fixed bug #76803 ftruncate changes file pointer 2018-08-28 15:42:39 +02:00
Anatol Belski
e42e8b1051 Refactor stat implementation
- move relevant parts into win32
- general cleanup
- use Windows API and fallback to POSIX
- improve filetime to timestamp conversion
- improve stat/fsat
- handle ino by using file index
- handle st_dev by using volume serial number

The inode implementation is based on file indexes from NTFS. On 32-bit,
fake inodes are shown, that may lead to unexpeted results. 64-bit
implementation is most reliable.
2018-08-26 22:30:06 +02:00
Peter Kokot
3ceecaa9a0 Replace HAVE_ST_BLOCKS with HAVE_STRUCT_STAT_ST_BLOCKS
Since Autoconf 2.50+ macro AC_STRUCT_ST_BLOCKS defines the new
HAVE_STRUCT_STAT_ST_BLOCKS symbol and has deprecated the previous
HAVE_ST_BLOCKS.

PHP 5.3 required Autoconf 2.13 (released in 1999) or newer, since PHP
5.4 the autoconf 2.59 (released in 2003) or newer was required, and
since PHP 7.2, autoconf 2.64 (released in 2008) or newer is required.
2018-08-24 18:33:23 +02:00
Christoph M. Becker
4bf1d0b3a4 Merge branch 'PHP-7.3'
* PHP-7.3:
  Simplify regression test
2018-08-23 12:52:31 +02:00
Christoph M. Becker
5fe8e49baa Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Simplify regression test
2018-08-23 12:51:11 +02:00
Christoph M. Becker
1c3d5659bd Merge branch 'PHP-7.1' into PHP-7.2
* PHP-7.1:
  Simplify regression test
2018-08-23 12:49:26 +02:00
Christoph M. Becker
6644bd005f Simplify regression test
There's no need to actually try to trigger an out-of-memory condition
to proof the leak; instead we can simply rely on the Zend MM to report
the memory leaks in debug mode (at least on Linux).  Therefore we
simplify the regression test, which also makes it run much faster.
2018-08-23 12:48:09 +02:00
Christoph M. Becker
4b5d26596a Merge branch 'PHP-7.3'
* PHP-7.3:
  Increase memory_limit to prevent test failures
2018-08-22 14:32:04 +02:00
Christoph M. Becker
6cf382b667 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Increase memory_limit to prevent test failures
2018-08-22 14:31:36 +02:00
Christoph M. Becker
10661e28d1 Merge branch 'PHP-7.1' into PHP-7.2
* PHP-7.1:
  Increase memory_limit to prevent test failures
2018-08-22 14:30:23 +02:00
Christoph M. Becker
5fb01a3a42 Increase memory_limit to prevent test failures 2018-08-22 14:29:28 +02:00
Christoph M. Becker
5aac8fdbfc Merge branch 'PHP-7.3'
* PHP-7.3:
  Fix #76778: array_reduce leaks memory if callback throws exception
2018-08-22 13:51:55 +02:00
Christoph M. Becker
1de17428f6 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Fix #76778: array_reduce leaks memory if callback throws exception
2018-08-22 13:51:16 +02:00
Christoph M. Becker
cdd9eb8c4a Merge branch 'PHP-7.1' into PHP-7.2
* PHP-7.1:
  Fix #76778: array_reduce leaks memory if callback throws exception
2018-08-22 13:49:35 +02:00
Christoph M. Becker
70b2fca220 Fix #76778: array_reduce leaks memory if callback throws exception
We have to release the result variable in the error case, too.
2018-08-22 13:40:24 +02:00
Dmitry Stogov
93f9ee7217 Use zend_class_entry/zend_function type names instead of _zend_class_entry/_zend_function tags. 2018-08-22 14:01:14 +03:00
Nikita Popov
5e74a1f411 Merge branch 'PHP-7.3' 2018-08-21 06:27:27 +02:00
David Carlier
16a9dd74f4 Avoid directly adding to string literal
This fixes a Clang warning.
2018-08-21 06:25:41 +02:00
Gabriel Caruso
c86ce117c2
Merge branch 'PHP-7.3'
* PHP-7.3:
  Make array parsing parameters error messages consistency with ZPP failure
2018-08-19 21:33:41 -03:00
Gabriel Caruso
efbf846fd2
Make array parsing parameters error messages consistency with ZPP failure 2018-08-19 21:27:57 -03:00
Xinchen Hui
e81b0b29d3 Merge branch 'PHP-7.3'
* PHP-7.3:
  Fixed same bug #76755 in setrawcookie
2018-08-17 16:20:37 +08:00
Xinchen Hui
5c1a2d8375 Fixed same bug #76755 in setrawcookie 2018-08-17 16:19:26 +08:00
Xinchen Hui
3ca89ba007 Merge branch 'PHP-7.3'
* PHP-7.3:
  Cheaper checking
2018-08-17 15:22:50 +08:00
Xinchen Hui
0a16af043e Cheaper checking 2018-08-17 15:21:48 +08:00
Xinchen Hui
13658428a2 Merge branch 'PHP-7.3'
* PHP-7.3:
  Micro optimization & fixed invalid key handling
2018-08-17 14:56:43 +08:00