Fix pcap trace capture crash for packets > 512 bytes 00/900/1
authorJohn Lo <loj@cisco.com>
Wed, 27 Apr 2016 13:56:36 +0000 (09:56 -0400)
committerJohn Lo <loj@cisco.com>
Wed, 27 Apr 2016 13:56:36 +0000 (09:56 -0400)
Change-Id: I9397ac756290953a14e3adfe5b7c980ecf92bac2
Signed-off-by: John Lo <loj@cisco.com>
vnet/vnet/unix/pcap.h

index e7bb218..563eafc 100644 (file)
@@ -169,7 +169,8 @@ pcap_add_buffer (pcap_main_t * pm,
   d = pcap_add_packet (pm, time_now, n_bytes_in_trace, n_left);
   while (1)
     {
   d = pcap_add_packet (pm, time_now, n_bytes_in_trace, n_left);
   while (1)
     {
-      clib_memcpy (d, b->data + b->current_data, b->current_length);
+      u32 copy_length = clib_min ((u32) n_left, b->current_length);
+      clib_memcpy (d, b->data + b->current_data, copy_length);
       n_left -= b->current_length;
       if (n_left <= 0)
        break;
       n_left -= b->current_length;
       if (n_left <= 0)
        break;