numam-dpdk/lib
Yongseok Koh 6d09256148 malloc: fix finding maximum contiguous IOVA size
malloc_elem_find_max_iova_contig() could return invalid size due to a
missing sanity check. The following gdb output shows how 'cur_size' can be
invalid in find_biggest_element().

	(gdb) p/x cur_size
	$4 = 0xffffffffffe42900
	(gdb) p elem
	$1 = (struct malloc_elem *) 0x12e842000
	(gdb) p *elem
	$2 = {heap = 0x7ffff7ff387c, prev = 0x12e831fc0, next =
		0x12e842900, free_list = {le_next = 0x109538000, le_prev =
		0x7ffff7ff3894}, msl = 0x7ffff7ff107c, state = ELEM_FREE,
		pad = 0, size = 2304}
	(gdb) p *elem->msl
	$5 = {{base_va = 0x100200000, addr_64 = 4297064448}, page_sz =
		2097152, socket_id = 0, version = 790, len = 17179869184,
		external = 0, memseg_arr = {name = "memseg-2048k-0-0",
		'\000' <repeats 47 times>, count = 493, len = 8192, elt_sz
		= 48, data = 0x10002e000, rwlock = {cnt = 0}}}

Fixes: 9fe6bceafd ("malloc: add finding biggest free IOVA-contiguous element")
Cc: stable@dpdk.org

Signed-off-by: Yongseok Koh <yskoh@mellanox.com>
Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
2018-12-20 15:17:48 +01:00
..
librte_acl lib: fix shifting 32-bit signed variable 31 times 2018-11-06 01:14:05 +01:00
librte_bbdev bbdev: add missing experimental tags and map entries 2018-12-19 19:36:53 +01:00
librte_bitratestats bitrate: add sanity check on parameters 2018-07-26 20:07:57 +02:00
librte_bpf bpf: fix x86 JIT for immediate loads 2018-11-13 23:18:53 +01:00
librte_cfgfile fix indentation in symbol maps 2018-11-26 20:16:46 +01:00
librte_cmdline ethdev: support MAC address as iterator filter 2018-10-26 22:14:06 +02:00
librte_compat buildtools: change license to SPDX 2018-07-26 22:45:17 +02:00
librte_compressdev compressdev: fix structure comment 2018-12-19 11:19:10 +01:00
librte_cryptodev fix indentation in symbol maps 2018-11-26 20:16:46 +01:00
librte_distributor build: set compat lib as universal dependency 2018-01-30 21:59:00 +01:00
librte_eal malloc: fix finding maximum contiguous IOVA size 2018-12-20 15:17:48 +01:00
librte_efd efd: fix write unlock during ring creation 2018-11-18 15:46:02 +01:00
librte_ethdev ethdev: fix typo in queue setup error log 2018-12-13 17:45:59 +00:00
librte_eventdev eventdev: fix eth Tx adapter queue count checks 2018-12-17 20:25:10 +01:00
librte_flow_classify flow_classify: do not check for invalid socket ID 2018-10-11 10:37:45 +02:00
librte_gro gro: fix overflow of payload length calculation 2018-12-19 04:29:57 +01:00
librte_gso gso: support UDP/IPv4 fragmentation 2018-07-11 23:45:20 +02:00
librte_hash hash: fix TSX aborts with newer gcc 2018-11-14 01:02:07 +01:00
librte_ip_frag ip_frag: fix IPv6 when MTU sizes not aligned to 8 bytes 2018-12-19 22:40:08 +01:00
librte_jobstats build: replace license text with SPDX tag 2018-01-30 21:58:59 +01:00
librte_kni kni: fix possible uninitialized variable 2018-11-23 01:43:35 +01:00
librte_kvargs kvargs: support list value 2018-10-26 22:14:06 +02:00
librte_latencystats latency: fix timestamp marking and latency calculation 2018-10-25 10:30:13 +02:00
librte_lpm lpm6: add incremental update on delete 2018-09-19 17:11:37 +02:00
librte_mbuf ethdev: support metadata as flow rule criteria 2018-10-26 22:14:05 +02:00
librte_member remove useless constructor headers 2018-07-12 00:00:35 +02:00
librte_mempool malloc: add function to check if socket is external 2018-10-11 11:11:25 +02:00
librte_meter meter: remove experimental tag from profile API 2018-08-06 01:15:11 +02:00
librte_metrics metrics: disallow null as metric name 2018-07-26 20:30:18 +02:00
librte_net lib: fix shifting 32-bit signed variable 31 times 2018-11-06 01:14:05 +01:00
librte_pci pci: fix parsing of address without function number 2018-11-13 17:59:42 +01:00
librte_pdump pdump: remove deprecated APIs 2018-12-19 01:25:56 +01:00
librte_pipeline pipeline: fix logically dead code 2018-11-12 17:45:23 +01:00
librte_port port: add symmetric crypto 2018-10-12 19:33:02 +02:00
librte_power fix indentation in symbol maps 2018-11-26 20:16:46 +01:00
librte_rawdev lib: reduce global variable usage 2018-10-29 02:34:27 +01:00
librte_reorder build: replace license text with SPDX tag 2018-01-30 21:58:59 +01:00
librte_ring ring/c11: relax ordering for load and store of the head 2018-11-13 17:00:58 +01:00
librte_sched mk: build with _GNU_SOURCE defined by default 2018-10-22 11:28:27 +02:00
librte_security security: restore experimental tag for unimplemented APIs 2018-11-23 02:03:33 +01:00
librte_table lib/librte_table: add hash function headers 2018-10-12 17:58:53 +02:00
librte_telemetry build: add dependency on telemetry to apps with meson 2018-10-27 15:21:33 +02:00
librte_timer timer: fix race condition 2018-12-19 20:56:09 +01:00
librte_vhost vhost: fix double read of descriptor flags 2018-12-13 18:17:42 +00:00
Makefile telemetry: introduce infrastructure 2018-10-27 15:18:20 +02:00
meson.build build: change default driver installation directory 2018-10-27 23:22:12 +02:00