From 4b48ae4bcdbc137c80b77adc5aa614e5f4cb9f51 Mon Sep 17 00:00:00 2001 From: Sascha Hauer Date: Thu, 29 Nov 2018 11:17:08 +0100 Subject: net: dns: return error codes The resolv() function used to return the IP address. When net_udp_new() fails we return an error code though which the callers of resolv() take as an IP address. This is wrong of course and we could return 0 in this case. Instead we return an error code and pass the resolved IP as a pointer which allows us to return proper error codes. This patch also adds error messages and error returns to the various callers of resolv() which used to just continue with a zero IP and let the user figure out what went wrong. Signed-off-by: Sascha Hauer --- common/blspec.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'common') diff --git a/common/blspec.c b/common/blspec.c index 2c682e1990..41f2a4c534 100644 --- a/common/blspec.c +++ b/common/blspec.c @@ -303,9 +303,11 @@ static char *parse_nfs_url(const char *url) goto out; } - ip = resolv(host); - if (ip == 0) + ret = resolv(host, &ip); + if (ret) { + pr_err("Cannot resolve \"%s\": %s\n", host, strerror(-ret)); goto out; + } hostpath = basprintf("%pI4:%s", &ip, path); -- cgit v1.2.3