]> git.ipfire.org Git - thirdparty/bind9.git/commit
Fix comparison between type uint16_t and wider type size_t in a loop
authorOndřej Surý <ondrej@isc.org>
Sat, 1 Feb 2020 16:13:45 +0000 (17:13 +0100)
committerMark Andrews <marka@isc.org>
Wed, 5 Feb 2020 01:41:13 +0000 (01:41 +0000)
commita9bd6f6ea6a4c68e8897c06ff8d3d935521f41e7
tree99586475a1a0a218990a2654d1bd920dc4c58b9a
parent9943c5dce5550e3111d4064b9d6ec8a1c67da285
Fix comparison between type uint16_t and  wider type size_t in a loop

Found by LGTM.com (see below for description), and while it should not
happen as EDNS OPT RDLEN is uint16_t, the fix is easy.  A little bit
of cleanup is included too.

> In a loop condition, comparison of a value of a narrow type with a value
> of a wide type may result in unexpected behavior if the wider value is
> sufficiently large (or small). This is because the narrower value may
> overflow. This can lead to an infinite loop.
lib/dns/resolver.c