Fix session/tcp coverity warnings

Change-Id: I5c404eacb4a6c1e16485a6656168d9171ff49a8b
Signed-off-by: Florin Coras <fcoras@cisco.com>
diff --git a/src/vnet/session/session_api.c b/src/vnet/session/session_api.c
index 5201ec6..a1225f8 100755
--- a/src/vnet/session/session_api.c
+++ b/src/vnet/session/session_api.c
@@ -354,6 +354,10 @@
   clib_error_t *error = 0;
   int rv = 0;
 
+  reg = vl_api_client_index_to_registration (mp->client_index);
+  if (!reg)
+    return;
+
   if (session_manager_is_enabled () == 0)
     {
       rv = VNET_API_ERROR_FEATURE_DISABLED;
@@ -410,8 +414,6 @@
   if (rv)
     return;
 
-  reg = vl_api_client_index_to_registration (mp->client_index);
-
   /* Send fifo segment fd if needed */
   if (ssvm_type (a->segment) == SSVM_SEGMENT_MEMFD)
     session_send_memfd_fd (reg, a->segment);
diff --git a/src/vnet/session/transport.c b/src/vnet/session/transport.c
index c31964c..acbb4f6 100644
--- a/src/vnet/session/transport.c
+++ b/src/vnet/session/transport.c
@@ -310,6 +310,13 @@
     {
       ip4_address_t *ip4;
       ip4 = ip_interface_get_first_ip (sw_if_index, 1);
+      if (!ip4)
+	{
+	  clib_warning ("no routable ip4 address on %U",
+			format_vnet_sw_if_index_name, vnet_get_main (),
+			sw_if_index);
+	  return -1;
+	}
       lcl_addr->ip4.as_u32 = ip4->as_u32;
     }
   else
diff --git a/src/vnet/tcp/tcp_debug.h b/src/vnet/tcp/tcp_debug.h
index 5d4f7d6..e37b3cd 100755
--- a/src/vnet/tcp/tcp_debug.h
+++ b/src/vnet/tcp/tcp_debug.h
@@ -328,15 +328,18 @@
 
 #define TCP_EVT_RST_SENT_HANDLER(_tc, ...)				\
 {									\
-  ELOG_TYPE_DECLARE (_e) =						\
+if (_tc)								\
   {									\
-    .format = "rst-tx: snd_nxt %d rcv_nxt %d",				\
-    .format_args = "i4i4",						\
-  };									\
-  DECLARE_ETD(_tc, _e, 2);						\
-  ed->data[0] = _tc->snd_nxt - _tc->iss;				\
-  ed->data[1] = _tc->rcv_nxt - _tc->irs;				\
-  TCP_EVT_STATE_CHANGE_HANDLER(_tc);					\
+    ELOG_TYPE_DECLARE (_e) =						\
+    {									\
+      .format = "rst-tx: snd_nxt %d rcv_nxt %d",			\
+      .format_args = "i4i4",						\
+    };									\
+    DECLARE_ETD(_tc, _e, 2);						\
+    ed->data[0] = _tc->snd_nxt - _tc->iss;				\
+    ed->data[1] = _tc->rcv_nxt - _tc->irs;				\
+    TCP_EVT_STATE_CHANGE_HANDLER(_tc);					\
+  }									\
 }
 
 #define TCP_EVT_FIN_RCVD_HANDLER(_tc, ...)				\