]> git.ipfire.org Git - thirdparty/nftables.git/commit
meta: fix tc classid parsing out-of-bounds access
authorFlorian Westphal <fw@strlen.de>
Wed, 13 Dec 2023 16:37:11 +0000 (17:37 +0100)
committerFlorian Westphal <fw@strlen.de>
Wed, 13 Dec 2023 17:11:20 +0000 (18:11 +0100)
commit7008b1200fb4988b7cd7ee1c5399cae071688d50
tree36e8e52f1a5bb8ceb1afa030dad3834757686e21
parentc0194279d356f942e81555262e41264af7659a1f
meta: fix tc classid parsing out-of-bounds access

AddressSanitizer: heap-buffer-overflow on address 0x6020000003af ...
  #0 0x7f9a83cbb402 in tchandle_type_parse src/meta.c:89
  #1 0x7f9a83c6753f in symbol_parse src/datatype.c:138

strlen() - 1 can underflow if length was 0.

Simplify the function, there is no need to duplicate the string
while scanning it.

Expect the first strtol to stop at ':', scan for the minor number next.
The second scan is required to stop at '\0'.

Fixes: 6f2eb8548e0d ("src: meta priority support using tc classid")
Signed-off-by: Florian Westphal <fw@strlen.de>
src/meta.c
tests/shell/testcases/bogons/nft-f/tchandle_type_parse_heap_overflow [new file with mode: 0644]