diff -Naur libreswan-3.32-orig/lib/libipsecconf/interfaces.c libreswan-3.32/lib/libipsecconf/interfaces.c
--- libreswan-3.32-orig/lib/libipsecconf/interfaces.c 2020-05-11 10:13:41.000000000 -0400
+++ libreswan-3.32/lib/libipsecconf/interfaces.c 2020-06-04 18:51:39.508280352 -0400
@@ -71,7 +71,11 @@
if (sa->sa.sa_family == af) {
/* XXX: sizeof right? */
ip_endpoint nhe;
- happy(sockaddr_to_endpoint(sa, sizeof(*sa), &nhe));
+ err_t e = sockaddr_to_endpoint(sa, sizeof(*sa), &nhe);
+ if (e != NULL) {
+ pexpect(e != NULL);
+ return false;
+ }
pexpect(endpoint_hport(&nhe) == 0);
*nh = endpoint_address(&nhe);
}
@@ -84,7 +88,11 @@
if (sa->sa.sa_family == af) {
/* XXX: sizeof right? */
ip_endpoint dste;
- happy(sockaddr_to_endpoint(sa, sizeof(*sa), &dste));
+ err_t e = sockaddr_to_endpoint(sa, sizeof(*sa), &dste);
+ if (e != NULL) {
+ pexpect(e != NULL);
+ return false;
+ }
pexpect(endpoint_hport(&dste) == 0);
*dst = endpoint_address(&dste);
}
diff -Naur libreswan-3.32-orig/lib/libswan/ip_endpoint.c libreswan-3.32/lib/libswan/ip_endpoint.c
--- libreswan-3.32-orig/lib/libswan/ip_endpoint.c 2020-05-11 10:13:41.000000000 -0400
+++ libreswan-3.32/lib/libswan/ip_endpoint.c 2020-06-04 18:51:39.508280352 -0400
@@ -54,20 +54,12 @@
switch (sa->sa.sa_family) {
case AF_INET:
{
- /* XXX: to strict? */
- if (sa_len != sizeof(sa->sin)) {
- return "wrong length";
- }
address = address_from_in_addr(&sa->sin.sin_addr);
port = ntohs(sa->sin.sin_port);
break;
}
case AF_INET6:
{
- /* XXX: to strict? */
- if (sa_len != sizeof(sa->sin6)) {
- return "wrong length";
- }
address = address_from_in6_addr(&sa->sin6.sin6_addr);
port = ntohs(sa->sin6.sin6_port);
break;