X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=src%2Fnetwork%2F__dns.c;h=b53ad4ab0f47e05837bcf479a2221a3228d4f029;hb=d104c1f7e22b9745b6028ff8fbc3bc88137ba1c2;hp=73ec422d8882bd9cfc51e276c85dcab949ffe59e;hpb=0b44a0315b47dd8eced9f3b7f31580cf14bbfc01;p=musl diff --git a/src/network/__dns.c b/src/network/__dns.c index 73ec422d..b53ad4ab 100644 --- a/src/network/__dns.c +++ b/src/network/__dns.c @@ -31,8 +31,8 @@ int __dns_doqueries(unsigned char *dest, const char *name, int *rr, int rrcnt) struct sockaddr_in6 sin6; } sa = {0}, ns[3] = {{0}}; socklen_t sl; - int nns; - int family; + int nns = 0; + int family = AF_UNSPEC; unsigned char q[280] = "", *r = dest; int ql; int rlen; @@ -46,7 +46,7 @@ int __dns_doqueries(unsigned char *dest, const char *name, int *rr, int rrcnt) /* Construct query template - RR and ID will be filled later */ if (strlen(name)-1 >= 254U) return -1; q[2] = q[5] = 1; - strcpy(q+13, name); + strcpy((char *)q+13, name); for (i=13; q[i]; i=j+1) { for (j=i; q[j] && q[j] != '.'; j++); if (j-i-1u > 62u) return -1; @@ -257,10 +257,12 @@ int __dns_count_addrs(const unsigned char *r, int cnt) int found=0, res, i; static const int p[2][2] = { { 4, RR_A }, { 16, RR_AAAA } }; - while (cnt--) for (i=0; i<2; i++) { - res = __dns_get_rr(0, 0, p[i][0], -1, r, p[i][1], 0); - if (res < 0) return res; - found += res; + while (cnt--) { + for (i=0; i<2; i++) { + res = __dns_get_rr(0, 0, p[i][0], -1, r, p[i][1], 0); + if (res < 0) return res; + found += res; + } r += 512; } return found;