diff --git a/server/proxy/pf_client.c b/server/proxy/pf_client.c index b8e864da9..11b4863d1 100644 --- a/server/proxy/pf_client.c +++ b/server/proxy/pf_client.c @@ -765,7 +765,8 @@ static BOOL pf_client_connect(freerdp* instance) if (!freerdp_connect(instance)) { - pf_modules_run_hook(pc->pdata->module, HOOK_TYPE_CLIENT_LOGIN_FAILURE, pc->pdata, pc); + if (!pf_modules_run_hook(pc->pdata->module, HOOK_TYPE_CLIENT_LOGIN_FAILURE, pc->pdata, pc)) + goto out; if (!retry) goto out; diff --git a/server/proxy/pf_server.c b/server/proxy/pf_server.c index e28a485fe..d3905f92c 100644 --- a/server/proxy/pf_server.c +++ b/server/proxy/pf_server.c @@ -578,7 +578,8 @@ static DWORD WINAPI pf_server_handle_peer(LPVOID arg) pdata = ps->pdata; WINPR_ASSERT(pdata); - pf_modules_run_hook(pdata->module, HOOK_TYPE_SERVER_SESSION_INITIALIZE, pdata, client); + if (!pf_modules_run_hook(pdata->module, HOOK_TYPE_SERVER_SESSION_INITIALIZE, pdata, client)) + goto out_free_peer; WINPR_ASSERT(client->Initialize); client->Initialize(client); @@ -586,7 +587,8 @@ static DWORD WINAPI pf_server_handle_peer(LPVOID arg) PROXY_LOG_INFO(TAG, ps, "new connection: proxy address: %s, client address: %s", pdata->config->Host, client->hostname); - pf_modules_run_hook(pdata->module, HOOK_TYPE_SERVER_SESSION_STARTED, pdata, client); + if (!pf_modules_run_hook(pdata->module, HOOK_TYPE_SERVER_SESSION_STARTED, pdata, client)) + goto out_free_peer; while (1) {