fix multiple validation issues in dns response label parsing
authorSzabolcs Nagy <nsz@port70.net>
Thu, 5 Jun 2014 20:32:42 +0000 (22:32 +0200)
committerSzabolcs Nagy <nsz@port70.net>
Thu, 5 Jun 2014 21:01:46 +0000 (23:01 +0200)
commitb3d9e0b94ea73c68ef4169ec82c898ce59a4e30a
tree0cf12f85f9c886b657d7e7dd4ae4128aa2ee706b
parent7e222f46a832cc7c148c376084c69d7493b11d6c
fix multiple validation issues in dns response label parsing

Due to an error introduced in commit fcc522c92335783293ac19df318415cd97fbf66b,
checking of the remaining output buffer space was not performed correctly,
allowing malformed input to write past the end of the buffer.

In addition, the loop detection logic failed to account for the possibility
of infinite loops with no output, which would hang the function.

The output size is now limited more strictly so only names with valid length
are accepted.
src/network/dn_expand.c