about summary refs log tree commit diff
path: root/src/network/dn_expand.c
Commit message (Collapse)AuthorAgeFilesLines
* fix dn_expand empty name handling and offsets to 0Szabolcs Nagy2014-09-041-6/+9
| | | | | | | | | | Empty name was rejected in dn_expand since commit 56b57f37a46dab432247bf29d96fcb11fbd02a6d which is a regression as reported by Natanael Copa. Furthermore if an offset pointer in a compressed name pointed to a terminating 0 byte (instead of a label) the returned name was not null terminated.
* fix multiple validation issues in dns response label parsingSzabolcs Nagy2014-06-051-4/+6
| | | | | | | | | | | | 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.
* Fix dn_expand pointer followingMichael Forney2013-11-231-1/+1
|
* fix regression in dn_expand/reverse dnsRich Felker2013-08-231-1/+1
| | | | | | off-by-one error copying the name components was yielding junk at the beginning and truncating one character at the end (of every component).
* fix length computation in dn_expandRich Felker2013-08-141-3/+5
| | | | | | | there are two possible points where the length is evaluated: either the first 'compression' jump, or the null terminator if no jumps have taken place yet. the previous code only measured the length of the first component.
* de-duplicate dn_expand, fix return value and signature, clean upRich Felker2013-08-141-21/+20
| | | | | | | | | | | | | | | | | the duplicate code in dn_expand and its incorrect return values are both results of the history of the code: the version in __dns.c was originally written with no awareness of the legacy resolver API, and was later copy-and-paste duplicated to provide the legacy API. this commit is the first of a series that will restructure the internal dns code to share as much code as possible with the legacy resolver API functions. I have also removed the loop detection logic, since the output buffer length limit naturally prevents loops. in order to avoid long runtime when encountering a loop if the caller provided a ridiculously long buffer, the caller-provided length is clamped at the maximum dns name length.
* initial check-in, version 0.5.0 v0.5.0Rich Felker2011-02-121-0/+28