Commit 6ecea945 authored by Steinar H. Gunderson's avatar Steinar H. Gunderson
Browse files

Handle the root of the DNS tree correctly in ares_expand_name.

parent 2c105af9
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -74,6 +74,14 @@ int ares_expand_name(const unsigned char *encoded, const unsigned char *abuf,
    return ARES_ENOMEM;
  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(). */
  p = encoded;
  while (*p)