strncpy stops copying when a byte set to 0 is read.
The fix is to use mempcy instead.
This patch also adds spd id to ipsec input trace.
Change-Id: Ibed071d3607fa76c3f6ee065f94128f1aca9b2e2
Signed-off-by: Pierre Pfister <ppfister@cisco.com>
sa.integ_key_len = sizeof (sa.integ_key);
if (ck)
sa.integ_key_len = sizeof (sa.integ_key);
if (ck)
- strncpy ((char *) sa.crypto_key, (char *) ck, sa.crypto_key_len);
+ memcpy (sa.crypto_key, ck, sa.crypto_key_len);
- strncpy ((char *) sa.integ_key, (char *) ik, sa.integ_key_len);
+ memcpy (sa.integ_key, ik, sa.integ_key_len);
u32 sa_id;
u32 spi;
u32 seq;
u32 sa_id;
u32 spi;
u32 seq;
- s = format (s, "esp: sa_id %u spi %u seq %u", t->sa_id, t->spi, t->seq);
+ s =
+ format (s, "esp: sa_id %u spd %u spi %u seq %u", t->sa_id, t->spd,
+ t->spi, t->seq);
- s = format (s, "esp: no sa spi %u seq %u", t->spi, t->seq);
+ s =
+ format (s, "esp: no sa spd %u spi %u seq %u", t->spd, t->spi, t->seq);
tr->sa_id = p0->sa_id;
tr->spi = clib_host_to_net_u32 (esp0->spi);
tr->seq = clib_host_to_net_u32 (esp0->seq);
tr->sa_id = p0->sa_id;
tr->spi = clib_host_to_net_u32 (esp0->spi);
tr->seq = clib_host_to_net_u32 (esp0->seq);
tr->sa_id = p0->sa_id;
tr->spi = clib_host_to_net_u32 (ah0->spi);
tr->seq = clib_host_to_net_u32 (ah0->seq_no);
tr->sa_id = p0->sa_id;
tr->spi = clib_host_to_net_u32 (ah0->spi);
tr->seq = clib_host_to_net_u32 (ah0->seq_no);
tr->sa_id = p0->sa_id;
tr->spi = clib_host_to_net_u32 (esp0->spi);
tr->seq = clib_host_to_net_u32 (esp0->seq);
tr->sa_id = p0->sa_id;
tr->spi = clib_host_to_net_u32 (esp0->spi);
tr->seq = clib_host_to_net_u32 (esp0->seq);