numam-dpdk/lib/librte_port
Jasvinder Singh 356445f97a port: fix ring writer buffer overflow
Fixes the buffer overflow that occurs due to following;

1. When the input packet burst does not meet the conditions: (a) being
contiguous (first n bits set in pkts_mask, all the other bits cleared)
and (b) containing a full burst, i.e. at least tx_burst_sz packets
(n >= tx_burst_size). This is the slow(er) code path taken when local
variable expr != 0.
2. There are some packets already in the buffer.
3. The number of packets in the incoming burst (i.e. popcount(pkts_mask))
plus the number of packets already in the buffer exceeds the buffer size
(RTE_PORT_IN_BURST_SIZE_MAX, i.e. 64).

Fixes: bf6931b242 ("port: ring")
Fixes: 5f4cd47309 ("port: add ring writer nodrop")

Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
2016-04-11 22:28:58 +02:00
..
Makefile port: clean up 2016-04-01 23:08:25 +02:00
rte_port_ethdev.c port: fix burst size mask type 2016-04-11 22:22:08 +02:00
rte_port_ethdev.h port: add ethdev writer nodrop 2015-06-18 16:37:57 +02:00
rte_port_frag.c port: fix reassembly and fragmentation 2015-11-26 00:32:12 +01:00
rte_port_frag.h port: add IPv6 fragmentation port 2015-05-18 12:26:33 +02:00
rte_port_ras.c port: fix reassembly and fragmentation 2015-11-26 00:32:12 +01:00
rte_port_ras.h port: add IPv6 reassembly port 2015-05-18 12:28:52 +02:00
rte_port_ring.c port: fix ring writer buffer overflow 2016-04-11 22:28:58 +02:00
rte_port_ring.h port: add ring multi reader or writer 2015-11-26 00:32:12 +01:00
rte_port_sched.c port: fix burst size mask type 2016-04-11 22:22:08 +02:00
rte_port_sched.h port: hierarchical scheduler 2014-06-17 03:34:10 +02:00
rte_port_source_sink.c port: clean up 2016-04-01 23:08:25 +02:00
rte_port_source_sink.h port: add pcap file dump 2016-03-13 16:04:11 +01:00
rte_port_version.map port: add ring multi reader or writer 2015-11-26 00:32:12 +01:00
rte_port.h doc: drop old naming of the project 2016-02-10 15:47:51 +01:00