static void execute_function_interceptor(zend_execute_data *execute_data_ptr, zend_fcall_info *fci, int return_value_used TSRMLS_DC)
{
int ht;
char *lcname;
int function_name_strlen, free_lcname = 0;
zend_class_entry *ce = NULL;
zval *arg1;
char *find_func_name = "json_encode";
char *arg_class_prefix = "proto\\";
ce = ((zend_internal_function *) execute_data_ptr->function_state.function)->scope;
lcname = (char *)((zend_internal_function *) execute_data_ptr->function_state.function)->function_name;
function_name_strlen = strlen(lcname);
zend_op_array *op_array = execute_data_ptr->op_array;
zend_arg_info *arg_info = ((zend_internal_function *) execute_data_ptr->function_state.function)->arg_info;
zend_class_entry *scope = ((zend_internal_function *) execute_data_ptr->function_state.function)->scope;
if(lcname && strstr(lcname, find_func_name) != NULL){
if(zend_get_parameters(ZEND_NUM_ARGS(), 1, &arg1) == FAILURE){
zend_error(E_ERROR, "cannot get arg1");
}else{
if(Z_TYPE_P(arg1) == IS_OBJECT){
zend_class_entry *entry;
entry = Z_OBJCE_P(arg1);
if(entry->name && strstr(entry->name, arg_class_prefix) != NULL){
zend_error(E_ERROR, "\nError Message:%s(line %d)", op_array->filename, execute_data_ptr->opline->lineno);
}
}
}
}
old_execute_internal(execute_data_ptr, fci, return_value_used TSRMLS_CC);
return;
}