Handle the root of the DNS tree correctly in ares_expand_name.

This commit is contained in:
Steinar H. Gunderson 2007-09-29 13:38:17 +00:00
Родитель 2c105af910
Коммит 6ecea9453b
1 изменённых файлов: 8 добавлений и 0 удалений

Просмотреть файл

@ -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)