[tor-commits] [tor/master] Fixup #17638: ignore EINVAL from FreeBSD jails without ::1

nickm at torproject.org nickm at torproject.org
Thu Nov 19 15:48:53 UTC 2015


commit f19d6b81c8fd38e2f86f0405ea3f788aa10c647b
Author: teor (Tim Wilson-Brown) <teor2345 at gmail.com>
Date:   Thu Nov 19 19:20:01 2015 +1100

    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.
---
 src/test/test_util.c |    5 +++++
 1 file changed, 5 insertions(+)

diff --git a/src/test/test_util.c b/src/test/test_util.c
index eecc50a..05c57c3 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]));





More information about the tor-commits mailing list