summaryrefslogtreecommitdiffstats
path: root/engine_api.c
diff options
context:
space:
mode:
Diffstat (limited to 'engine_api.c')
-rw-r--r--engine_api.c39
1 files changed, 0 insertions, 39 deletions
diff --git a/engine_api.c b/engine_api.c
deleted file mode 100644
index 05cfe15..0000000
--- a/engine_api.c
+++ /dev/null
@@ -1,39 +0,0 @@
-#include "engine_api.h"
-
-#include "engine_hooks.h" // for ddtrace_backup_error_handling
-
-int ddtrace_call_sandboxed_function(const char *name, size_t name_len, zval **retval, int argc,
- zval **argv[] TSRMLS_DC) {
- zval *fname;
- MAKE_STD_ZVAL(fname);
- ZVAL_STRINGL(fname, name, name_len, 1);
- zend_fcall_info fci;
- zend_fcall_info_cache fcc;
-
- // Play it safe if an exception has not been handled yet
- if (EG(exception)) {
- return FAILURE;
- }
-
- ddtrace_error_handling eh;
- ddtrace_backup_error_handling(&eh, EH_SUPPRESS TSRMLS_CC);
-
- int result = zend_fcall_info_init(fname, IS_CALLABLE_CHECK_SILENT, &fci, &fcc, NULL, NULL TSRMLS_CC);
- if (result == SUCCESS) {
- fci.retval_ptr_ptr = retval;
- fci.params = argv;
- fci.no_separation = 0; // allow for by-ref args
- fci.param_count = argc;
- result = zend_call_function(&fci, &fcc TSRMLS_CC);
- }
-
- ddtrace_restore_error_handling(&eh TSRMLS_CC);
-
- if (EG(exception)) {
- zend_clear_exception(TSRMLS_C);
- }
-
- zval_dtor(fname);
- efree(fname);
- return result;
-}