Merge branch 'PHP-7.2' into PHP-7.3

* PHP-7.2:
  Fix #78694: Appending to a variant array causes segfault
This commit is contained in:
Christoph M. Becker 2019-10-19 11:48:40 +02:00
commit ce035dc4a0
3 changed files with 27 additions and 0 deletions

3
NEWS
View File

@ -7,6 +7,9 @@ PHP NEWS
. Fixed bug #78656 (Parse errors classified as highest log-level). (Erik
Lundin)
- COM:
. Fixed bug #78694 (Appending to a variant array causes segfault). (cmb)
- Date:
. Fixed bug #70153 (\DateInterval incorrectly unserialized). (Maksim Iakunin)

View File

@ -123,6 +123,11 @@ static void com_write_dimension(zval *object, zval *offset, zval *value)
obj = CDNO_FETCH(object);
if (offset == NULL) {
php_com_throw_exception(DISP_E_BADINDEX, "appending to variants is not supported");
return;
}
if (V_VT(&obj->v) == VT_DISPATCH) {
ZVAL_COPY_VALUE(&args[0], offset);
ZVAL_COPY_VALUE(&args[1], value);

View File

@ -0,0 +1,19 @@
--TEST--
Bug #78694 (Appending to a variant array causes segfault)
--SKIPIF--
<?php
if (!extension_loaded('com_dotnet')) die('skip com_dotnet extension not available');
?>
--FILE--
<?php
foreach ([new com('WScript.Shell'), new variant([])] as $var) {
try {
$var[] = 42;
} catch (com_exception $ex) {
var_dump($ex->getMessage());
}
}
?>
--EXPECT--
string(38) "appending to variants is not supported"
string(38) "appending to variants is not supported"