summaryrefslogtreecommitdiffstats
path: root/lib/libc
diff options
context:
space:
mode:
authorgnn <gnn@FreeBSD.org>2005-05-14 19:43:10 +0000
committergnn <gnn@FreeBSD.org>2005-05-14 19:43:10 +0000
commitc138dacf0cfab71856dbdc3a17fafb8d56f55dca (patch)
tree8d7bc73f094f38471157e723e1293dac628b93c0 /lib/libc
parent9d27c6032cebdc3d7124bc1b4d6a89f6727927c2 (diff)
downloadFreeBSD-src-c138dacf0cfab71856dbdc3a17fafb8d56f55dca.zip
FreeBSD-src-c138dacf0cfab71856dbdc3a17fafb8d56f55dca.tar.gz
Submitted by: Jinmei Tatuya, Hajimu Umemoto
Reviewed by: rwatson at freebsd dot org Approved by: rwatson at freebsd dot org MFC after: 1 week Fix the matchlen() function so that it handles the IPv4 (AF_INET) case correctly. Until now it has been treating IPv4 addresses as if they were IPv6 which could lead to corruption errors.
Diffstat (limited to 'lib/libc')
-rw-r--r--lib/libc/net/getaddrinfo.c4
-rw-r--r--lib/libc/net/name6.c4
2 files changed, 4 insertions, 4 deletions
diff --git a/lib/libc/net/getaddrinfo.c b/lib/libc/net/getaddrinfo.c
index d6def63..a7ab128 100644
--- a/lib/libc/net/getaddrinfo.c
+++ b/lib/libc/net/getaddrinfo.c
@@ -861,8 +861,8 @@ matchlen(src, dst)
break;
#endif
case AF_INET:
- s = (u_char *)&((struct sockaddr_in6 *)src)->sin6_addr;
- d = (u_char *)&((struct sockaddr_in6 *)dst)->sin6_addr;
+ s = (u_char *)&((struct sockaddr_in *)src)->sin_addr;
+ d = (u_char *)&((struct sockaddr_in *)dst)->sin_addr;
addrlen = sizeof(struct in_addr);
lim = s + addrlen;
break;
diff --git a/lib/libc/net/name6.c b/lib/libc/net/name6.c
index 4bbc5f0..611dea7 100644
--- a/lib/libc/net/name6.c
+++ b/lib/libc/net/name6.c
@@ -1028,8 +1028,8 @@ matchlen(src, dst)
break;
#endif
case AF_INET:
- s = (u_char *)&((struct sockaddr_in6 *)src)->sin6_addr;
- d = (u_char *)&((struct sockaddr_in6 *)dst)->sin6_addr;
+ s = (u_char *)&((struct sockaddr_in *)src)->sin_addr;
+ d = (u_char *)&((struct sockaddr_in *)dst)->sin_addr;
addrlen = sizeof(struct in_addr);
lim = s + addrlen;
break;
OpenPOWER on IntegriCloud