Commit aa0f8593 authored by Yang Tse's avatar Yang Tse
Browse files

fix compiler warning
parent 4186b5b4
Loading
Loading
Loading
Loading
+8 −4
Original line number Diff line number Diff line
@@ -69,17 +69,21 @@ int ares_expand_name(const unsigned char *encoded, const unsigned char *abuf,
  int len, indir = 0;
  char *q;
  const unsigned char *p;
  union {
    ssize_t sig;
     size_t uns;
  } nlen;

  len = name_length(encoded, abuf, alen);
  if (len < 0)
  nlen.sig = name_length(encoded, abuf, alen);
  if (nlen.sig < 0)
    return ARES_EBADNAME;

  *s = malloc(((size_t)len) + 1);
  *s = malloc(nlen.uns + 1);
  if (!*s)
    return ARES_ENOMEM;
  q = *s;

  if (len == 0) {
  if (nlen.uns == 0) {
    /* RFC2181 says this should be ".": the root of the DNS tree.
     * Since this function strips trailing dots though, it becomes ""
     */
+11 −7
Original line number Diff line number Diff line
@@ -46,26 +46,30 @@ int ares_expand_string(const unsigned char *encoded,
                       long *enclen)
{
  unsigned char *q;
  long len;
  union {
    ssize_t sig;
     size_t uns;
  } elen;

  if (encoded == abuf+alen)
    return ARES_EBADSTR;

  len = *encoded;
  if (encoded+len+1 > abuf+alen)
  elen.uns = *encoded;
  if (encoded+elen.sig+1 > abuf+alen)
    return ARES_EBADSTR;

  encoded++;

  *s = malloc(len+1);
  *s = malloc(elen.uns+1);
  if (*s == NULL)
    return ARES_ENOMEM;
  q = *s;
  strncpy((char *)q, (char *)encoded, len);
  q[len] = '\0';
  strncpy((char *)q, (char *)encoded, elen.uns);
  q[elen.uns] = '\0';

  *s = q;

  *enclen = len+1;
  *enclen = (long)(elen.sig+1);

  return ARES_SUCCESS;
}