From: teor (Tim Wilson-Brown) Date: Thu, 19 Nov 2015 08:20:01 +0000 (+1100) Subject: Fixup #17638: ignore EINVAL from FreeBSD jails without ::1 X-Git-Tag: tor-0.2.8.1-alpha~230^2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=f19d6b81c8fd38e2f86f0405ea3f788aa10c647b;p=thirdparty%2Ftor.git Fixup #17638: ignore EINVAL from FreeBSD jails without ::1 In my testing, an IPv6-only FreeBSD jail without ::1 returned EINVAL from tor_ersatz_socketpair. Let's not fail the unit test because of this - it would only ever use tor_socketpair() anyway. --- diff --git a/src/test/test_util.c b/src/test/test_util.c index eecc50a287..05c57c32a7 100644 --- a/src/test/test_util.c +++ b/src/test/test_util.c @@ -4425,6 +4425,11 @@ test_util_socketpair(void *arg) * Otherwise, we risk exposing a socketpair on a routable IP address. (Some * BSD jails use a routable address for localhost. Fortunately, they have * the real AF_UNIX socketpair.) */ + if (-socketpair_result == SOCK_ERRNO(EINVAL)) { + /* In my testing, an IPv6-only FreeBSD jail without ::1 returned EINVAL. + * Assume we're on a machine without 127.0.0.1 or ::1 and give up now. */ + goto done; + } tt_int_op(0, OP_EQ, socketpair_result); tt_assert(SOCKET_OK(fds[0])); tt_assert(SOCKET_OK(fds[1]));