Skip to content

dns_qp_lookup() doesn't handle searches for escaped characters well

Evan Hunt requested to merge 4702-qpiter-fix into main

in QP keys, characters that are not common in DNS names are encoded as two-octet sequences. this caused a glitch in iterator positioning when some lookups failed.

consider the case where we're searching for \009 (represented in a QP key as {0x03, 0x0c}) and a branch exists for \000 (represented as {0x03, 0x03}). we match on the 0x03, and continue to search down. at the point where we find we have no match, we need to pop back up to the branch before the 0x03 - which may be multiple levels up the stack - before we position the iterator.

Closes #4702 (closed)

Merge request reports