Checking whether the passed in name (node) is a valid IPv6 or IPv4
address, we can do the checking for these two error conditions
properly up front.
Signed-off-by: Michael Adam <obnox@samba.org>
Reviewed-by: Andreas Schneider <asn@samba.org>
}
valid_port:
- if (hints->ai_family == AF_UNSPEC || hints->ai_family == AF_INET) {
- rc = inet_pton(AF_INET, node, &addr.in.v4);
- if (rc == 1) {
- addr.family = AF_INET;
- }
+
+ rc = inet_pton(AF_INET, node, &addr.in.v4);
+ if (rc == 1) {
+ addr.family = AF_INET;
}
#ifdef HAVE_IPV6
if (addr.family == AF_UNSPEC) {
}
#endif
+ if ((addr.family != AF_UNSPEC) &&
+ (hints->ai_family != AF_UNSPEC) &&
+ (hints->ai_family != addr.family))
+ {
+ return EAI_ADDRFAMILY;
+ }
+
rc = nwrap_files_getaddrinfo(node, port, hints, &ai, &ai_tail);
if (rc != 0) {
int ret;