numam-dpdk/lib
Stephen Hemminger 041a3971c8 cfgfile: fix stack buffer underflow
If cfgfile is give a line with comment character at the start
of the line, it will dereference outside of the buffer.

Detected with address sanitizer:

SUMMARY: AddressSanitizer: stack-buffer-underflow
lib/librte_cfgfile/rte_cfgfile.c:194 in rte_cfgfile_load_with_params
Shadow bytes around the buggy address:
  0x200fff79f6a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x200fff79f6b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x200fff79f6c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x200fff79f6d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x200fff79f6e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
=>0x200fff79f6f0: 00 00 00 00 f1 f1 f1[f1]00 00 00 00 00 00 00 00
  0x200fff79f700: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x200fff79f710: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x200fff79f720: 04 f2 f2 f2 f3 f3 f3 f3 00 00 00 00 00 00 00 00
  0x200fff79f730: 00 00 00 00 00 00 00 00 00 00 f1 f1 f1 f1 00 f2
  0x200fff79f740: f2 f2 f3 f3 f3 f3 00 00 00 00 00 00 00 00 00 00
Shadow byte legend (one shadow byte represents 8 application bytes):
  Addressable:           00
  Partially addressable: 01 02 03 04 05 06 07
  Heap left redzone:       fa
  Freed heap region:       fd
  Stack left redzone:      f1
  Stack mid redzone:       f2
  Stack right redzone:     f3
  Stack after return:      f5
  Stack use after scope:   f8
  Global redzone:          f9
  Global init order:       f6
  Poisoned by user:        f7
  Container overflow:      fc
  Array cookie:            ac
  Intra object redzone:    bb
  ASan internal:           fe
  Left alloca redzone:     ca
  Right alloca redzone:    cb
==2189==ABORTING

Fixes: a6a47ac9c2 ("cfgfile: rework load function")
Cc: stable@dpdk.org

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Reviewed-by: Bruce Richardson <bruce.richardson@intel.com>
2020-07-07 23:22:04 +02:00
..
librte_acl replace alignment attributes 2020-04-16 18:16:18 +02:00
librte_bbdev lib: remind experimental status in headers 2020-07-07 12:49:10 +02:00
librte_bitratestats build: align symbols with global ABI version 2019-11-20 23:05:39 +01:00
librte_bpf lib: remind experimental status in headers 2020-07-07 12:49:10 +02:00
librte_cfgfile cfgfile: fix stack buffer underflow 2020-07-07 23:22:04 +02:00
librte_cmdline replace unused attributes 2020-04-16 18:30:58 +02:00
librte_compressdev lib: remind experimental status in headers 2020-07-07 12:49:10 +02:00
librte_cryptodev trace: simplify trace point registration 2020-07-05 21:34:21 +02:00
librte_distributor build: add global libatomic dependency for 32-bit clang 2020-04-21 11:34:09 +02:00
librte_eal vfio: support VF token 2020-07-07 14:06:49 +02:00
librte_efd replace packed attributes 2020-04-16 18:16:46 +02:00
librte_ethdev trace: simplify trace point registration 2020-07-05 21:34:21 +02:00
librte_eventdev trace: simplify trace point registration 2020-07-05 21:34:21 +02:00
librte_fib lib: remind experimental status in headers 2020-07-07 12:49:10 +02:00
librte_flow_classify lib: remind experimental status in headers 2020-07-07 12:49:10 +02:00
librte_graph log: remove unneeded logtype declaration 2020-07-07 13:18:23 +02:00
librte_gro build: align symbols with global ABI version 2019-11-20 23:05:39 +01:00
librte_gso build: align symbols with global ABI version 2019-11-20 23:05:39 +01:00
librte_hash hash: check flags on creation for future proofing 2020-06-16 17:46:39 +02:00
librte_ip_frag ip_frag: ensure minimum v6 fragmentation length 2020-04-25 15:15:27 +02:00
librte_ipsec lib: remind experimental status in headers 2020-07-07 12:49:10 +02:00
librte_jobstats build: align symbols with global ABI version 2019-11-20 23:05:39 +01:00
librte_kni kni: fix not contiguous FIFO 2020-02-14 11:59:01 +01:00
librte_kvargs kvargs: fix strcmp helper documentation 2020-05-19 15:05:56 +02:00
librte_latencystats latency: fix calculation for multi-thread 2020-01-20 01:32:50 +01:00
librte_lpm lpm6: fix comments spelling 2020-04-24 19:29:02 +02:00
librte_mbuf mbuf: add dump of free dynamic flags 2020-06-25 23:03:18 +02:00
librte_member log: introduce logtype register macro 2020-07-03 15:52:51 +02:00
librte_mempool mempool: use generic memory syscall wrappers 2020-07-07 01:24:55 +02:00
librte_meter meter: remove inline functions from export list 2020-06-23 19:29:41 +02:00
librte_metrics log: introduce logtype register macro 2020-07-03 15:52:51 +02:00
librte_net net: fix IPv4 checksum 2020-06-24 23:42:20 +02:00
librte_node lib: remind experimental status in headers 2020-07-07 12:49:10 +02:00
librte_pci pci: fix address domain format size 2020-06-30 00:02:54 +02:00
librte_pdump log: introduce logtype register macro 2020-07-03 15:52:51 +02:00
librte_pipeline replace packed attributes 2020-04-16 18:16:46 +02:00
librte_port ring: prepare ring to allow new sync schemes 2020-04-21 11:34:09 +02:00
librte_power replace unused attributes 2020-04-16 18:30:58 +02:00
librte_rawdev rawdev: export dump function in map file 2020-07-07 19:18:04 +02:00
librte_rcu lib: remind experimental status in headers 2020-07-07 12:49:10 +02:00
librte_regexdev regexdev: implement API functions 2020-07-07 00:24:52 +02:00
librte_reorder build: align symbols with global ABI version 2019-11-20 23:05:39 +01:00
librte_rib lib: remind experimental status in headers 2020-07-07 12:49:10 +02:00
librte_ring ring: optimize empty test 2020-07-01 11:46:09 +02:00
librte_sched sched: fix port time rounding 2020-07-07 00:58:31 +02:00
librte_security security: fix crash at accessing non-implemented ops 2020-04-23 17:56:38 +02:00
librte_stack log: remove unneeded logtype declaration 2020-07-07 13:18:23 +02:00
librte_table eal: fix compiler detection in public headers 2020-03-18 00:59:17 +01:00
librte_telemetry lib: remind experimental status in headers 2020-07-07 12:49:10 +02:00
librte_timer timer: relax barrier for status update 2020-04-26 22:07:38 +02:00
librte_vhost log: introduce logtype register macro 2020-07-03 15:52:51 +02:00
Makefile regexdev: introduce API 2020-07-07 00:24:38 +02:00
meson.build build: remove special versioning for non stable libraries 2020-07-07 12:48:25 +02:00