From 9c32f05751ca92239f0cc667a8d696dec86c9db8 Mon Sep 17 00:00:00 2001 From: Filip Tehlar Date: Fri, 11 Mar 2022 11:12:56 +0000 Subject: session: fix crash during client detach This fixes a crash caused by client closing socket before adding worker. During detach vpp tries to delete worker based on invalid worker index. Type: fix Signed-off-by: Filip Tehlar Change-Id: I3242bcbb116ef5fd1d4c449f5bcf907e4e2f8f30 --- src/vnet/session/session_api.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src/vnet/session/session_api.c') diff --git a/src/vnet/session/session_api.c b/src/vnet/session/session_api.c index 615e2ade59c..2502ef6a70a 100644 --- a/src/vnet/session/session_api.c +++ b/src/vnet/session/session_api.c @@ -1485,7 +1485,9 @@ sapi_socket_detach (app_namespace_t * app_ns, clib_socket_t * cs) /* Cleanup everything because app worker closed socket or crashed */ handle = (app_ns_api_handle_t *) & cs->private_data; - app_wrk = app_worker_get (handle->aah_app_wrk_index); + app_wrk = app_worker_get_if_valid (handle->aah_app_wrk_index); + if (!app_wrk) + return; vnet_app_worker_add_del_args_t args = { .app_index = app_wrk->app_index, -- cgit 1.2.3-korg