Handle the root of the DNS tree correctly in ares_expand_name.
This commit is contained in:
Родитель
2c105af910
Коммит
6ecea9453b
|
@ -74,6 +74,14 @@ int ares_expand_name(const unsigned char *encoded, const unsigned char *abuf,
|
||||||
return ARES_ENOMEM;
|
return ARES_ENOMEM;
|
||||||
q = *s;
|
q = *s;
|
||||||
|
|
||||||
|
if (len == 0) {
|
||||||
|
// RFC2181 says this should be ".": the root of the DNS tree.
|
||||||
|
// Since this function strips trailing dots though, it becomes ""
|
||||||
|
q[0] = '\0';
|
||||||
|
*enclen = 1; // the caller should move one byte to get past this
|
||||||
|
return ARES_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
/* No error-checking necessary; it was all done by name_length(). */
|
/* No error-checking necessary; it was all done by name_length(). */
|
||||||
p = encoded;
|
p = encoded;
|
||||||
while (*p)
|
while (*p)
|
||||||
|
|
Загрузка…
Ссылка в новой задаче