From: Wez Furlong Date: Tue, 27 Jul 2004 03:44:40 +0000 (+0000) Subject: protect caller from a potential bailout X-Git-Tag: PRE_ZEND_VM_DISPATCH_PATCH~355 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=3e327b6e21b2fa10ab08935f4eb10f18b0c8d960;p=php protect caller from a potential bailout --- diff --git a/ext/com_dotnet/com_wrapper.c b/ext/com_dotnet/com_wrapper.c index 4ca96cc8c5..0a35d26d8d 100644 --- a/ext/com_dotnet/com_wrapper.c +++ b/ext/com_dotnet/com_wrapper.c @@ -296,12 +296,16 @@ static HRESULT STDMETHODCALLTYPE disp_invokeex( } else if (wFlags & DISPATCH_PROPERTYPUT) { zend_update_property(Z_OBJCE_P(disp->object), disp->object, Z_STRVAL_PP(name), Z_STRLEN_PP(name)+1, *params[0] TSRMLS_CC); } else if (wFlags & DISPATCH_METHOD) { - if (SUCCESS == call_user_function_ex(EG(function_table), &disp->object, *name, - &retval, pdp->cArgs, params, 1, NULL TSRMLS_CC)) { - ret = S_OK; - } else { + zend_try { + if (SUCCESS == call_user_function_ex(EG(function_table), &disp->object, *name, + &retval, pdp->cArgs, params, 1, NULL TSRMLS_CC)) { + ret = S_OK; + } else { + ret = DISP_E_EXCEPTION; + } + } zend_catch { ret = DISP_E_EXCEPTION; - } + } zend_end_try(); } else { trace("Don't know how to handle this invocation %08x\n", wFlags); }