Fix an issue in tls.c 21/16621/4
authorPing Yu <ping.yu@intel.com>
Wed, 26 Dec 2018 10:42:38 +0000 (05:42 -0500)
committerFlorin Coras <florin.coras@gmail.com>
Thu, 3 Jan 2019 00:16:46 +0000 (00:16 +0000)
Curernt code will overwrite parent_app_api_context, and defer the
setting after this value is used in callback.

Change-Id: Ie16e432fd0f4214e6deff3aa3b58b3be824b0331
Signed-off-by: Ping Yu <ping.yu@intel.com>
src/vnet/tls/tls.c

index fdba08c..34de539 100644 (file)
@@ -262,7 +262,6 @@ tls_notify_app_connected (tls_ctx_t * ctx, u8 is_failed)
     goto failed;
 
   ctx->app_session_handle = session_handle (app_session);
-  ctx->c_s_index = app_session->session_index;
   app_session->session_state = SESSION_STATE_CONNECTING;
   if (cb_fn (ctx->parent_app_index, ctx->parent_app_api_context,
             app_session, 0 /* not failed */ ))
@@ -272,6 +271,9 @@ tls_notify_app_connected (tls_ctx_t * ctx, u8 is_failed)
       return -1;
     }
 
+  /* parent_app_api_context should not be overwitten before used,
+   * so defer setting c_s_index */
+  ctx->c_s_index = app_session->session_index;
   app_session->session_state = SESSION_STATE_READY;
   session_lookup_add_connection (&ctx->connection,
                                 session_handle (app_session));