1
0
mirror of https://github.com/php/php-src.git synced 2026-04-25 00:48:25 +02:00
Commit Graph

161 Commits

Author SHA1 Message Date
Gabriel Caruso 5d6e923d46 Remove mention of PHP major version in Copyright headers
Closes GH-4732.
2019-09-25 14:51:43 +02:00
Thomas Gerbet ef27bd60d0 Add stubs for ext-hash 2019-09-16 09:17:47 +02:00
Christoph M. Becker 7a20ba43d3 Add missing ZPP_none() 2019-09-15 21:30:15 +02:00
Christoph M. Becker 39ab4104ed Remove duplicate md5/sha1 implementation
This code was actually unused since its introduction, and since at
least the md5 implementation in the core was completely overhauled,
we're dropping the md5 and sha1 related stuff from ext/hash.
2019-08-30 13:21:48 +02:00
Mark 1f863399d5 Warnings to Errors hash_equals 2019-08-29 16:13:06 +02:00
Mark e18bac96b7 Errorfy hash_pbkdf2 2019-08-29 16:11:21 +02:00
Mark ee104cf1bb Warnings become errors for hash_hkdf 2019-08-29 16:10:40 +02:00
Mark 960da6dff8 Warnings become errors hash stream functions (other than hash_init) 2019-08-29 16:10:08 +02:00
Mark 14c07fef74 Warnings become errors hash_init 2019-08-29 16:09:29 +02:00
Mark 21587854b4 Warnings become errors hash_hmac hash_hmac_file 2019-08-29 16:08:16 +02:00
Nikita Popov a1e2c8870e Merge branch 'PHP-7.4' 2019-07-22 17:26:01 +02:00
Nikita Popov d59aac58b3 Report errors from stream read and write operations
The php_stream_read() and php_stream_write() functions now return
an ssize_t value, with negative results indicating failure. Functions
like fread() and fwrite() will return false in that case.

As a special case, EWOULDBLOCK and EAGAIN on non-blocking streams
should not be regarded as error conditions, and be reported as
successful zero-length reads/writes instead. The handling of EINTR
remains unclear and is internally inconsistent (e.g. some code-paths
will automatically retry on EINTR, while some won't).

I'm landing this now to make sure the stream wrapper ops API changes
make it into 7.4 -- however, if the user-facing changes turn out to
be problematic we have the option of clamping negative returns to
zero in php_stream_read() and php_stream_write() to restore the
old behavior in a relatively non-intrusive manner.
2019-07-22 17:17:28 +02:00
Peter Kokot 033cafacbd Sync HAVE_HASH, HAVE_HASH_EXT, PHAR_HASH_OK symbols
The hash extension is always available since PHP-7.4. The symbol
HAVE_HASH_EXT is kept for BC reasons and removed in PHP-8.0.

This patch also removes the PHAR_HASH_OK since it is no longer
relevant.
2019-06-27 23:25:33 +02:00
Kalle Sommer Nielsen e632537c83 Remove usage of HAVE_HASH_EXT and COMPILE_DL_HASH as ext/hash is always available (master only) 2019-03-20 20:43:35 +02:00
Nikita Popov d40889e408 Merge branch 'PHP-7.4' 2019-03-11 10:19:50 +01:00
Andrew Brampton c79ce48ddb Fix #71890: Add support for crc32c Castagnoli's polynomial.
This variant of crc32 is heavily used by storage systems, such as iSCSI, SCTP,
Btrfs, ext4, and is increasingly being used in API (such as Google Cloud
Storage, and Apache Kafka).
2019-03-11 10:19:35 +01:00
Dmitry Stogov 91ef4124e5 Refactor zend_object_handlers API to pass zend_object* and zend_string* insted of zval(s). 2019-02-04 13:20:25 +03:00
Peter Kokot 92ac598aab Remove local variables
This patch removes the so called local variables defined per
file basis for certain editors to properly show tab width, and
similar settings. These are mainly used by Vim and Emacs editors
yet with recent changes the once working definitions don't work
anymore in Vim without custom plugins or additional configuration.
Neither are these settings synced across the PHP code base.

A simpler and better approach is EditorConfig and fixing code
using some code style fixing tools in the future instead.

This patch also removes the so called modelines for Vim. Modelines
allow Vim editor specifically to set some editor configuration such as
syntax highlighting, indentation style and tab width to be set in the
first line or the last 5 lines per file basis. Since the php test
files have syntax highlighting already set in most editors properly and
EditorConfig takes care of the indentation settings, this patch removes
these as well for the Vim 6.0 and newer versions.

With the removal of local variables for certain editors such as
Emacs and Vim, the footer is also probably not needed anymore when
creating extensions using ext_skel.php script.

Additionally, Vim modelines for setting php syntax and some editor
settings has been removed from some *.phpt files.  All these are
mostly not relevant for phpt files neither work properly in the
middle of the file.
2019-02-03 21:03:00 +01:00
Zeev Suraski 0cf7de1c70 Remove yearly range from copyright notice 2019-01-30 11:03:12 +02:00
jvoisin fbdaabba62 Fix some sign-related issues in comparisons 2019-01-09 10:01:12 +01:00
Dmitry Stogov cbf642b715 Create object only after parameter checks 2018-12-26 13:06:33 +03:00
Peter Kokot 1ad08256f3 Sync leading and final newlines in source code files
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
2018-10-14 12:56:38 +02:00
Nikita Popov 74d138e4a3 Fix incorrect printf modifier after size_t changes 2018-10-04 12:13:46 +02:00
Kalle Sommer Nielsen 5268f367ce Hopefully last round of size_t fixes, this makes the remaining php_hash_ops use size_t over an int 2018-10-03 13:36:05 +02:00
Kalle Sommer Nielsen 84b0d0faba Second round of fixing compiler warnings in ext/hash. Lots of the signatures that previously was unsigned int is now size_t, there was a fair bit of inconsistency there already and this commit should make it all sync nicely 2018-10-03 11:32:57 +02:00
Kalle Sommer Nielsen f7991ca656 Revert "Fix compiler warnings in ext/hash"
This reverts commit 596fbf7393.
2018-10-03 10:37:20 +02:00
Kalle Sommer Nielsen 596fbf7393 Fix compiler warnings in ext/hash 2018-10-03 08:48:27 +02:00
Sara Golemon ffc7f8ae52 Merge branch 'PHP-7.3'
* PHP-7.3:
  Fixed bug #76918 Repeated parameter name in arg info
2018-09-25 12:10:33 -04:00
Sara Golemon 913c20e61f Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Fixed bug #76918 Repeated parameter name in arg info
2018-09-25 12:10:21 -04:00
Sara Golemon 4baf4964ad Merge branch 'PHP-7.1' into PHP-7.2
* PHP-7.1:
  Fixed bug #76918 Repeated parameter name in arg info
2018-09-25 12:09:38 -04:00
Sara Golemon b5d0eb44c0 Fixed bug #76918 Repeated parameter name in arg info 2018-09-25 11:18:24 -04:00
Dmitry Stogov 8939c4d96b Get rid of ZEND_ACC_CTOR, ZEND_ACC_DTOR and ZEND_ACC_IMPLEMENTED_ABSTRACT 2018-09-05 13:16:10 +03:00
Peter Kokot 8d3f8ca12a Remove unused Git attributes ident
The $Id$ keywords were used in Subversion where they can be substituted
with filename, last revision number change, last changed date, and last
user who changed it.

In Git this functionality is different and can be done with Git attribute
ident. These need to be defined manually for each file in the
.gitattributes file and are afterwards replaced with 40-character
hexadecimal blob object name which is based only on the particular file
contents.

This patch simplifies handling of $Id$ keywords by removing them since
they are not used anymore.
2018-07-25 00:53:25 +02:00
Dmitry Stogov b6cc4d2009 Use zval_ptr_dtor() instead of zval_dtor() in internal functions that destroy new created object (This is safer and produces less code) 2018-07-05 11:54:26 +03:00
Dmitry Stogov f2b4ec4bdc Export standard object handlers, to avoid indirect access 2018-05-31 11:57:22 +03:00
Dmitry Stogov 5eb1f92f31 Use zend_string_release_ex() instread of zend_string_release() in places, where we sure about string persistence. 2018-05-28 16:27:12 +03:00
Anatol Belski f9822b143e Remove unused argument 2018-03-14 16:33:57 +01:00
Gabriel Caruso 701437a948 Remove return types from some magic method in protos
__construct, __destruct, __wakeup does not have return types defined.
2018-03-09 12:04:46 +01:00
Anatol Belski 3e6492f305 Improve loop vectorization 2018-02-09 19:28:20 +01:00
Anatol Belski e87dfb1da2 Improve loop vectorization 2018-02-09 19:28:20 +01:00
Gabriel Caruso 8034fdc9d9 Use int instead of integer in proto 2018-02-02 22:32:15 +01:00
Xinchen Hui a6519d0514 year++ 2018-01-02 12:57:58 +08:00
Xinchen Hui 7a7ec01a49 year++ 2018-01-02 12:55:14 +08:00
Xinchen Hui ccd4716ec7 year++ 2018-01-02 12:53:31 +08:00
Dmitry Stogov 9e709e2fa0 Move constants into read-only data segment 2017-12-14 18:43:44 +03:00
Nikita Popov b72b1a4e4d Add zend_object_alloc() API
Using ecalloc() to create objects is expensive, because the
dynamic-size memset() is unreasonably slow. Make sure we only
zero the main object structure with known size, as the properties
are intialized separately anyway.

Technically we do not need to zero the embedded zend_object
structure either, but as long as the memset argument is constant,
a couple more bytes don't really matter.
2017-11-25 17:12:37 +01:00
Anatol Belski 80d6eb6806 Fix unsigned comparisons and remove dead code
Fix unsigned comparison

Cleanup never executed block

Fix unsigned comparison

Fix unsigned comparison, diff can't be < 0

Fix unsigned comparison

Fix unsigned comparison

Remove dead code
2017-11-17 22:38:44 +01:00
Dmitry Stogov 0056f52f50 Use interned strings for hash algorithm names (not copyied into SHM) 2017-11-01 02:40:39 +03:00
Sara Golemon a6e4a713ea Add hash_hmac_algos() for filtered is_crypto methods 2017-07-23 15:17:09 -04:00
=?UTF-8?q?Rouven=20We=C3=9Fling?= b7f59be9f4 Refactor HashContext into an object.
This allows better type hinting as well as potentially adding
methods in a followup diff.

Original patch by Rouven Weßling (github.com/realityking)
Heavily modified by Sara Golemon (github.com/sgolemon)
2017-01-31 19:28:35 -08:00