]> granicus.if.org Git - pdns/commit
rec: Don't choke on escaped content in getZoneCuts()
authorRemi Gacogne <remi.gacogne@powerdns.com>
Mon, 19 Dec 2016 15:27:14 +0000 (16:27 +0100)
committerRemi Gacogne <remi.gacogne@powerdns.com>
Mon, 19 Dec 2016 15:27:14 +0000 (16:27 +0100)
commit754914f0177cd990db16ff0cc29c8789e94b32bb
tree4821af29ae569dc6fba655ea1b7e1a5cb3dc2146
parente0c49e64b206342ad619ecbb9d5e2701d874ebc0
rec: Don't choke on escaped content in getZoneCuts()

`getZoneCuts()` was constructing a `DNSName` by passing a raw label returned
from `DNSName::getRawLabels()` as a string. The constructor then tried to handle
escaped characters from the string, resulting in a different `DNSName` than the
expected one. This caused the `qname != begin` condition to be false even after
every label in `labelsToAdd` had been added, causing an UB by calling
`std::vector::back()` on an empty vector.
Using `DNSName::prependRawLabel()` instead prevents this issue since the string is
not escaped.
pdns/validate.cc