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.
This commit is contained in:
parent
9d27c6032c
commit
c138dacf0c
lib/libc/net
@ -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;
|
||||
|
@ -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;
|
||||
|
Loading…
x
Reference in New Issue
Block a user