X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=src%2Fnetwork%2Fresolvconf.c;h=ceabf0808450b056708129b5b937e413884c5c8c;hb=83b858f83b658bd34eca5d8ad4d145f673ae7e5e;hp=0743a88faae1bfc0d632f2358f04ec62ceb55f8a;hpb=d6cb08bcaca4ff1f921375510ca72bccea969c75;p=musl diff --git a/src/network/resolvconf.c b/src/network/resolvconf.c index 0743a88f..ceabf080 100644 --- a/src/network/resolvconf.c +++ b/src/network/resolvconf.c @@ -3,6 +3,7 @@ #include #include #include +#include #include int __get_resolv_conf(struct resolvconf *conf, char *search, size_t search_sz) @@ -10,7 +11,7 @@ int __get_resolv_conf(struct resolvconf *conf, char *search, size_t search_sz) char line[256]; unsigned char _buf[256]; FILE *f, _f; - int nns; + int nns = 0; conf->ndots = 1; conf->timeout = 5; @@ -45,8 +46,8 @@ int __get_resolv_conf(struct resolvconf *conf, char *search, size_t search_sz) if (z != p) conf->ndots = x > 15 ? 15 : x; } p = strstr(line, "attempts:"); - if (p && isdigit(p[6])) { - p += 6; + if (p && isdigit(p[9])) { + p += 9; unsigned long x = strtoul(p, &z, 10); if (z != p) conf->attempts = x > 10 ? 10 : x; } @@ -69,7 +70,7 @@ int __get_resolv_conf(struct resolvconf *conf, char *search, size_t search_sz) } if (!search) continue; - if (strncmp(line, "domain", 6) || strncmp(line, "search", 6) + if ((strncmp(line, "domain", 6) && strncmp(line, "search", 6)) || !isspace(line[6])) continue; for (p=line+7; isspace(*p); p++);