numam-dpdk/lib
Patrik Andersson acbff5c67e vhost: fix crash when exceeding file descriptors
Protect against DPDK crash when allocation of listen fd >= 1023.
For events on fd:s >1023, the current implementation will trigger
an abort due to access outside of allocated bit mask.

Corrections would include:

  * Match fdset_add() signature in fd_man.c to fd_man.h
  * Handling of return codes from fdset_add()
  * Addition of check of fd number in fdset_add_fd()

The rationale behind the suggested code change is that,
fdset_event_dispatch() could attempt access outside of the FD_SET
bitmask if there is an event on a file descriptor that in turn
looks up a virtio file descriptor with a value > 1023.
Such an attempt will lead to an abort() and a restart of any
vswitch using DPDK.

A discussion topic exist in the ovs-discuss mailing list that can
provide a little more background:
http://openvswitch.org/pipermail/discuss/2016-February/020243.html

Fixes: 8f972312 ("vhost: support vhost-user")

Signed-off-by: Patrik Andersson <patrik.r.andersson@ericsson.com>
Signed-off-by: Christian Ehrhardt <christian.ehrhardt@canonical.com>
Acked-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
2016-07-15 22:12:38 +02:00
..
librte_acl mk: fix cross-compilation 2016-06-07 10:02:39 +02:00
librte_cfgfile cfgfile: fix uninitialized variable on load error 2016-05-02 15:15:46 +02:00
librte_cmdline cmdline: remove duplicated symbol from .map 2016-06-30 20:02:52 +02:00
librte_compat
librte_cryptodev cryptodev: move KASUMI to end of list 2016-07-08 20:00:32 +02:00
librte_distributor
librte_eal vfio: fix coding style 2016-07-15 22:12:37 +02:00
librte_ether ethdev: fix xstats id mismatch 2016-07-10 14:55:42 +02:00
librte_hash hash: retrieve a key given its position 2016-07-10 14:56:45 +02:00
librte_ip_frag mk: fix internal dependencies 2016-06-29 13:33:01 +02:00
librte_ivshmem ivshmem: fix for modified mempool struct 2016-07-01 19:33:08 +02:00
librte_jobstats jobstats: fix typo in a comment 2016-06-30 18:51:20 +02:00
librte_kni mk: fix internal dependencies 2016-06-29 13:33:01 +02:00
librte_kvargs
librte_lpm lpm6: fix possible garbage in lookup 2016-05-02 15:15:45 +02:00
librte_mbuf mbuf: set errno on pool creation error 2016-07-11 19:10:09 +02:00
librte_mempool mempool: fix empty structure definition 2016-07-15 17:26:52 +02:00
librte_meter mk: fix missing libm dependencies 2016-03-22 20:42:47 +01:00
librte_net
librte_pdump pdump: close client socket on error 2016-07-10 15:06:30 +02:00
librte_pipeline mk: fix internal dependencies 2016-06-29 13:33:01 +02:00
librte_port port: remove duplicated symbols from .map 2016-06-30 20:02:56 +02:00
librte_power examples/vm_power_manager: remove dependency on internal header 2016-07-11 17:23:32 +02:00
librte_reorder mk: fix internal dependencies 2016-06-29 13:33:01 +02:00
librte_ring mem: avoid memzone/mempool/ring name truncation 2016-05-19 14:40:14 +02:00
librte_sched sched: fix build without red 2016-06-14 17:24:15 +02:00
librte_table table: remove unneeded dependency on hash library 2016-07-10 16:23:13 +02:00
librte_timer
librte_vhost vhost: fix crash when exceeding file descriptors 2016-07-15 22:12:38 +02:00
Makefile pdump: add new library for packet capture 2016-06-16 23:39:56 +02:00