ipsec: cli bug fixes 09/18109/2
authorKingwel Xie <kingwel.xie@ericsson.com>
Thu, 7 Mar 2019 11:34:30 +0000 (06:34 -0500)
committerNeale Ranns <nranns@cisco.com>
Thu, 7 Mar 2019 13:31:39 +0000 (13:31 +0000)
1. fix wrong assignemnt of lik/rik
2. keys initialized to 0, to avoid using random data
   in stack. could cause memory overlapped then crash
3. show sa->id in hex format

Change-Id: Id0430aa49bb55c27cee4f97f8c0e4ec87515dcd2
Signed-off-by: Kingwel Xie <kingwel.xie@ericsson.com>
src/vnet/ipsec/ipsec_cli.c
src/vnet/ipsec/ipsec_format.c

index ee2e870..648455b 100644 (file)
@@ -82,7 +82,8 @@ ipsec_sa_add_del_command_fn (vlib_main_t * vm,
   ipsec_protocol_t proto;
   ipsec_sa_flags_t flags;
   clib_error_t *error;
-  ipsec_key_t ck, ik;
+  ipsec_key_t ck = { 0 };
+  ipsec_key_t ik = { 0 };
   int is_add, rv;
   u32 id, spi;
 
@@ -619,7 +620,10 @@ create_ipsec_tunnel_command_fn (vlib_main_t * vm,
   u8 ipv4_set = 0;
   u8 ipv6_set = 0;
   clib_error_t *error = NULL;
-  ipsec_key_t rck, lck, lik, rik;
+  ipsec_key_t rck = { 0 };
+  ipsec_key_t lck = { 0 };
+  ipsec_key_t lik = { 0 };
+  ipsec_key_t rik = { 0 };
 
   clib_memset (&a, 0, sizeof (a));
   a.is_add = 1;
@@ -709,9 +713,9 @@ create_ipsec_tunnel_command_fn (vlib_main_t * vm,
   clib_memcpy (a.remote_crypto_key, rck.data, rck.len);
   a.remote_crypto_key_len = rck.len;
 
-  clib_memcpy (a.local_integ_key, lck.data, lck.len);
+  clib_memcpy (a.local_integ_key, lik.data, lik.len);
   a.local_integ_key_len = lck.len;
-  clib_memcpy (a.remote_integ_key, rck.data, rck.len);
+  clib_memcpy (a.remote_integ_key, rik.data, rik.len);
   a.remote_integ_key_len = rck.len;
 
   rv = ipsec_add_del_tunnel_if (&a);
index dc66569..d65b2a7 100644 (file)
@@ -244,7 +244,7 @@ format_ipsec_sa (u8 * s, va_list * args)
 
   sa = pool_elt_at_index (im->sad, sai);
 
-  s = format (s, "[%d] sa %u spi %u mode %s%s protocol %s%s%s%s",
+  s = format (s, "[%d] sa 0x%x spi %u mode %s%s protocol %s%s%s%s",
              sai, sa->id, sa->spi,
              sa->is_tunnel ? "tunnel" : "transport",
              sa->is_tunnel_ip6 ? "-ip6" : "",