X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fplugins%2Fhs_apps%2Fecho_client.c;h=076fca22deb3dbdd1cdd20eb9389e49d94ffa858;hb=1afa7afffad6e296a97556aa4c9482f4cd544074;hp=1d036b69ecbe9828a8f48988433b4a9d73e22852;hpb=8ac1d6d05f2a0d6759284d4eeb5079644a5c8c86;p=vpp.git diff --git a/src/plugins/hs_apps/echo_client.c b/src/plugins/hs_apps/echo_client.c index 1d036b69ecb..076fca22deb 100644 --- a/src/plugins/hs_apps/echo_client.c +++ b/src/plugins/hs_apps/echo_client.c @@ -370,13 +370,15 @@ quic_echo_clients_qsession_connected_callback (u32 app_index, u32 api_context, u8 thread_index = vlib_get_thread_index (); session_endpoint_cfg_t sep = SESSION_ENDPOINT_CFG_NULL; u32 stream_n; + session_handle_t handle; DBG ("QUIC Connection handle %d", session_handle (s)); vec_validate (a, 1); a->uri = (char *) ecm->connect_uri; - parse_uri (a->uri, &sep); - sep.parent_handle = session_handle (s); + if (parse_uri (a->uri, &sep)) + return -1; + sep.parent_handle = handle = session_handle (s); for (stream_n = 0; stream_n < ecm->quic_streams; stream_n++) { @@ -393,8 +395,11 @@ quic_echo_clients_qsession_connected_callback (u32 app_index, u32 api_context, } DBG ("QUIC stream %d connected", stream_n); } - vec_add1 (ecm->quic_session_index_by_thread[thread_index], - session_handle (s)); + /* + * 's' is no longer valid, its underlying pool could have been moved in + * vnet_connect() + */ + vec_add1 (ecm->quic_session_index_by_thread[thread_index], handle); vec_free (a); return 0; }