rib: fix max depth IPv6 lookup
authorOwen Hilyard <ohilyard@iol.unh.edu>
Wed, 23 Jun 2021 15:17:29 +0000 (11:17 -0400)
committerDavid Marchand <david.marchand@redhat.com>
Thu, 24 Jun 2021 13:34:45 +0000 (15:34 +0200)
commit03b8372a9a73a6b3dce4ce6b447ea37c398a4685
treede8e389c56d8253e33471e7b340bc91d694f09a5
parent016441e3c770b65774d658c94a82c5bf5ed826fe
rib: fix max depth IPv6 lookup

ASAN found a stack buffer overflow in lib/rib/rte_rib6.c:get_dir.
The fix for the stack buffer overflow was to make sure depth
was always < 128, since when depth = 128 it caused the index
into the ip address to be 16, which read off the end of the array.

While trying to solve the buffer overflow, I noticed that a few
changes could be made to remove the for loop entirely.

Fixes: f7e861e21c46 ("rib: support IPv6")
Cc: stable@dpdk.org
Signed-off-by: Owen Hilyard <ohilyard@iol.unh.edu>
Acked-by: Vladimir Medvedkin <vladimir.medvedkin@intel.com>
lib/rib/rte_rib6.c