Commit Graph

114980 Commits

Author SHA1 Message Date
Nikita Popov
d955ee9f6b Make string size calculation in chunk_split more precise
The +1 on the string length is unnecessary, as we need the string
length without trailing NUL byte here.

The +1 on the chunks is only necessary if there is a rest. If the
string devides into chunks exactly, we don't need an extra chunk.

This makes the allocations exactly as large as it needs to be.
2019-08-25 15:34:37 +02:00
Olumide Samson
b9c961e160 Add some header and html function stub 2019-08-25 15:27:58 +02:00
Christoph M. Becker
4742b2e1de Add stubs for ext/ftp 2019-08-25 14:56:45 +02:00
Nikita Popov
3602fea659 Skip memory_limit test without ZMM 2019-08-25 09:38:49 +02:00
Stanislav Malyshev
511faf7435 Merge branch 'PHP-7.4'
* PHP-7.4:
  Update Oniguruma to 6.9.1
2019-08-25 00:21:23 -07:00
Stanislav Malyshev
beb7a0039b Merge branch 'PHP-7.3' into PHP-7.4
* PHP-7.3:
  Update Oniguruma to 6.9.1
2019-08-25 00:20:40 -07:00
Stanislav Malyshev
d3f2cfe20a Update Oniguruma to 6.9.1 2019-08-25 00:02:32 -07:00
Stanislav Malyshev
72bc4672c6 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix CVE-2019-13224: don't allow different encodings for onig_new_deluxe()
  set version for release
2019-08-24 23:17:44 -07:00
Stanislav Malyshev
377f30acb2 Merge branch 'PHP-7.3' into PHP-7.4
* PHP-7.3:
  Fix CVE-2019-13224: don't allow different encodings for onig_new_deluxe()
  set version for release
2019-08-24 23:17:12 -07:00
Stanislav Malyshev
5704eca6f7 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Fix CVE-2019-13224: don't allow different encodings for onig_new_deluxe()
  set version for release
2019-08-24 23:16:09 -07:00
Stanislav Malyshev
087cb7bab2 Merge branch 'PHP-7.1' into PHP-7.2
* PHP-7.1:
  Fix CVE-2019-13224: don't allow different encodings for onig_new_deluxe()
  set version for release
2019-08-24 23:15:36 -07:00
Stanislav Malyshev
1258303e66 Fix CVE-2019-13224: don't allow different encodings for onig_new_deluxe()
Backport from 0f7f61ed1b
2019-08-24 23:11:45 -07:00
George Peter Banyard
9d18f23c4c Remove 'bogus' error condition in str_pad() 2019-08-24 16:05:00 +02:00
George Peter Banyard
675e975185 Promote warning to error in zend_forbid_dynamic_call() 2019-08-23 20:01:51 +02:00
George Peter Banyard
1059e3dc39 Promote warnings to errors in str_repeat() 2019-08-23 20:01:19 +02:00
Christoph M. Becker
bba7f38c4f Don't explicitly set return value on ZPP failure in ext/iconv
Failing ZPP throws as of PHP 8.0.0, so explicitly setting a return
value is useless, and also slightly confusing.
2019-08-23 18:14:46 +02:00
Christoph M. Becker
d420336115 Add ext/iconv stubs 2019-08-23 18:14:45 +02:00
Nikita Popov
4e4cc9b480 Merge branch 'PHP-7.4' 2019-08-23 17:23:31 +02:00
Nikita Popov
d1157cbce1 Relax closure $this unbinding deprecation
Only deprecate unbinding of $this from a closure if $this is
syntactically used within the closure.

This is desired to support Laravel's macro system, see laravel/framework#29482.

This should still allow us to implement the performance improvements
we're interested in for PHP 8, without breaking existing use-cases.
2019-08-23 17:21:23 +02:00
Nikita Popov
51ea7fc477 Merge branch 'PHP-7.4' 2019-08-23 17:01:49 +02:00
Nikita Popov
8807889ac2 Fix arginfo leak when using disabled_classes
Also remove the hack where scope is set to NULL in order to make
free_internal_arg_info work. Instead explicitly call it for class
methods.

This fixes the asan build for Zend/tests/bug77494.phpt.
2019-08-23 17:00:59 +02:00
Nikita Popov
7910f128e2 Fix noalias violation in select call 2019-08-23 16:18:59 +02:00
Nikita Popov
6534ff13cd Avoid strncat use in proc_open
Instead manually manage the insertion position.
2019-08-23 16:18:59 +02:00
Nikita Popov
724a4662b8 Replace strncat in filter implementation
In this case we already know exactly where we need to write, no
need to use strncat at all.
2019-08-23 16:18:50 +02:00
Nikita Popov
51905cd212 Merge branch 'PHP-7.4' 2019-08-23 15:37:07 +02:00
Nikita Popov
9173c21a35 Support variable element size in spl heap implementation
This allows us to drop the intermediate allocation for
spl_pqueue_elem.

This fixes GC for SplPriorityQueue, because we can now directly
return a well-formed GC child buffer.
2019-08-23 15:29:53 +02:00
Nikita Popov
38ed1e6353 Merge branch 'PHP-7.4' 2019-08-23 15:27:55 +02:00
Nikita Popov
13e92223c0 Fixed bug #78436 2019-08-23 15:27:28 +02:00
Christoph M. Becker
9f14eb114b Fix bug77812-*.phpt
Undefined constants error as of PHP 8.0.0.
2019-08-23 14:49:50 +02:00
Christoph M. Becker
aa3f9c5f1c Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #77812: Interactive mode does not support PHP 7.3-style heredoc
2019-08-23 14:04:52 +02:00
Christoph M. Becker
514be3ff87 Merge branch 'PHP-7.3' into PHP-7.4
* PHP-7.3:
  Fix #77812: Interactive mode does not support PHP 7.3-style heredoc
2019-08-23 14:04:31 +02:00
Christoph M. Becker
03c7749dc8 Fix #77812: Interactive mode does not support PHP 7.3-style heredoc
As of PHP 7.3.0, the rules regarding the heredoc and nowdoc closing
identifier have been relaxed.  While formerly, the closing identifier
was required to be placed at the beginning of a line and to be
immediately followed by (a semicolon and) a line break, it may now be
preceeded by whitespace, and may be followed by any non-word character.
We adjust the recognition logic respectively.
2019-08-23 13:59:10 +02:00
Tyson Andre
0c09089caf Fix escapes for namespaced classes in gen_stub.php
Fix the string generated when the `ns\class` is passed to a macro

    #define ESCAPE(x) #x
    // puts(ESCAPE(ns\class));  // warning: unknown escape sequence: \c
    puts(ESCAPE(ns\\class));  // Properly prints ns\class to stdout.
2019-08-23 12:29:55 +02:00
Christoph M. Becker
9b227640c1 Empty merge 2019-08-23 12:23:36 +02:00
Christoph M. Becker
eeb910911d Merge branch 'PHP-7.3' into PHP-7.4
* PHP-7.3:
  Suppress deprecation warning on IDNA2003 ICU methods for clang
2019-08-23 12:22:28 +02:00
Christoph M. Becker
c9d31941e4 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Suppress deprecation warning on IDNA2003 ICU methods for clang
2019-08-23 12:21:57 +02:00
Christoph M. Becker
ff7029b65b Suppress deprecation warning on IDNA2003 ICU methods for clang 2019-08-23 12:18:58 +02:00
Christoph M. Becker
5d94ad7944 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #78438: Corruption when __unserializing deeply nested structures
2019-08-23 11:41:38 +02:00
Christoph M. Becker
ca265eb545 Fix #78438: Corruption when __unserializing deeply nested structures
When storing two temporary variables for delayed __unserialize() calls,
we have to make sure that both fit into the same linked list element.
To that end we introduce the internal API `tmp_var` which allows to
reserve `num` slots in the same list element.

We also fix the `var_dtor_entries` struct definition to use the proper
size, namely `VAR_DTOR_ENTRIES_MAX`.
2019-08-23 11:41:06 +02:00
George Peter Banyard
f51421c629 Promote warnings to errors in chunk_split() 2019-08-22 21:45:36 +02:00
George Peter Banyard
fdff6cfd50 Promote warnings to errors in str_word_count() 2019-08-22 21:45:07 +02:00
George Peter Banyard
754d9f3da4 Promote warnings to errors in wordwrap() 2019-08-22 21:44:34 +02:00
George Peter Banyard
fe44e1637a Promote warnings to errors in dirname() 2019-08-22 21:44:01 +02:00
George Peter Banyard
698491d98a Promote warnings to errors in str_split() 2019-08-22 19:33:37 +02:00
George Peter Banyard
c0554fdec5 Promote warnings to errors in strtr() 2019-08-22 19:33:37 +02:00
George Peter Banyard
c1fcf2d616 Promote warnings to errors in array_pad() 2019-08-22 19:30:20 +02:00
George Peter Banyard
7dcbcd4ca5 Promote warnings to errors in array_column() 2019-08-22 19:27:47 +02:00
Christoph M. Becker
cee24be5b3 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix var_unserializer debug code
2019-08-22 15:59:34 +02:00
Christoph M. Becker
69ba2b98d1 Fix var_unserializer debug code
At least it now compiles and should be free of warnings.
2019-08-22 15:58:51 +02:00
George Peter Banyard
ab76c613fe Normalise strr(i)pos offset messages with str(i)pos ones. 2019-08-22 12:56:32 +02:00