Skip to content

Commit

Permalink
Merge pull request #506 from redbullmarky/php8
Browse files Browse the repository at this point in the history
Segfault fix when using empty()
  • Loading branch information
stesie authored Feb 19, 2023
2 parents eb66c66 + 79a4680 commit eb61c4d
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 1 deletion.
20 changes: 20 additions & 0 deletions tests/issue_504_001.phpt
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
--TEST--
Test empty() : Segmentation fault caused by 'empty' check on a V8Function object
--SKIPIF--
<?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
--FILE--
<?php
$v = new \V8Js();
$r = $v->executeString('
a = {
main: function() {}
};
', null, V8Js::FLAG_FORCE_ARRAY | V8Js::FLAG_PROPAGATE_PHP_EXCEPTIONS);

if (!empty($r['main'])) {
echo 'Ok' . PHP_EOL;
}
?>
--EXPECTF--
Ok

1 change: 0 additions & 1 deletion v8js_v8object_class.cc
Original file line number Diff line number Diff line change
Expand Up @@ -933,7 +933,6 @@ PHP_MINIT_FUNCTION(v8js_v8object_class) /* {{{ */
/* V8<Object|Function> handlers */
memcpy(&v8js_v8object_handlers, zend_get_std_object_handlers(), sizeof(zend_object_handlers));
v8js_v8object_handlers.clone_obj = NULL;
v8js_v8object_handlers.cast_object = NULL;
v8js_v8object_handlers.get_property_ptr_ptr = v8js_v8object_get_property_ptr_ptr;
v8js_v8object_handlers.has_property = v8js_v8object_has_property;
v8js_v8object_handlers.read_property = v8js_v8object_read_property;
Expand Down

0 comments on commit eb61c4d

Please sign in to comment.