tls: picotls handle accept failures

Should also fix coverity warning.

Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I068b837377b329a22ace5b2235c6dd9f067ead77
diff --git a/src/plugins/tlspicotls/tls_picotls.c b/src/plugins/tlspicotls/tls_picotls.c
index a0fbab0..a0448e9 100644
--- a/src/plugins/tlspicotls/tls_picotls.c
+++ b/src/plugins/tlspicotls/tls_picotls.c
@@ -287,9 +287,21 @@
     {
       picotls_do_handshake (ptls_ctx, tcp_session);
       if (picotls_handshake_is_over (ctx))
-	ret = ptls_is_server (ptls_ctx->tls) ?
-		tls_notify_app_accept (ctx) :
-		tls_notify_app_connected (ctx, SESSION_E_NONE);
+	{
+	  if (ptls_is_server (ptls_ctx->tls))
+	    {
+	      if (tls_notify_app_accept (ctx))
+		{
+		  ctx->c_s_index = SESSION_INVALID_INDEX;
+		  tls_disconnect_transport (ctx);
+		  return -1;
+		}
+	    }
+	  else
+	    {
+	      tls_notify_app_connected (ctx, SESSION_E_NONE);
+	    }
+	}
 
       if (!svm_fifo_max_dequeue (tcp_session->rx_fifo))
 	return 0;