• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

torproject / tor / 11055
0%
master: 66%

Build:
Build:
LAST BUILD BRANCH: maint-0.4.3
DEFAULT BRANCH: master
Ran 13 Apr 2021 01:57PM UTC
Jobs 1
Files 944
Run time 2min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

pending completion
11055

push

travis-ci

dgoulet-tor
guard: Don't check bridge transport name when selecting eligible guards

This is related to ticket #40360 which found this problem when a Bridge entry
with a transport name (let say obfs4) is set without a fingerprint:

  Bridge obfs4 <IP>:<PORT> cert=<...> iat-mode=0

(Notice, no fingerprint between PORT and "cert=")

Problem: commit 09c6d0324 added a check in
get_sampled_guard_for_bridge() that would return NULL if the selected bridge
did not have a valid transport name (that is the Bridge transport name that
corresponds to a ClientTransportPlugin).

Unfortuantely, this function is also used when selecting our eligible guards
which is done *before* the transport list is populated and so the added check
for the bridge<->transport name is querying an empty list of transports
resulting in always returning NULL.

For completion, the logic is: Pick eligible guards (use bridge(s) if need be)
then for those, initiate a connection to the pluggable transport proxy and
then populate the transport list once we've connected.

Back to get_sampled_guard_for_bridge(). As said earlier, it is used when
selecting our eligible guards in a way that prevents us from selecting
duplicates. In other words, if that function returns non-NULL, the selection
continues considering the bridge was sampled before. But if it returns NULL,
the relay is added to the eligible list.

This bug made it that our eligible guard list was populated with the *same*
bridge 3 times like so (remember no fingerprint):

  [info] entry_guards_update_primary(): Primary entry guards have changed. New primary guard list is:
  [info] entry_guards_update_primary():   1/3: [bridge] ($<a class=hub.com/torproject/tor/commit/<a class="double-link" href="https://git"><a class=hub.com/torproject/tor/commit/0000000000000000000000000000000000000000">000000000)
  [info] entry_guards_update_primary():   2/3: [bridge] ($0000000000000000000000000000000000000000)
  [info] entry_guards_update_primary():   3/3: [bridge] ($0000000000000000000000000000000000000000)

When tor starts, it will find the bridge fingerprint... (continued)

0 of 79472 relevant lines covered (0.0%)

0.0 hits per line

Jobs
ID Job ID Ran Files Coverage
9 11055.9 (MAKEFLAGS="-k -j 2" HARDENING_OPTIONS="--enable-all-bugs-are-fatal --enable-expensive-hardening" ASCIIDOC_OPTIONS="--disable-asciidoc" RUST_VERSION="1.31.0" CHUTNEY_TOR_SANDBOX="0" CHUTNEY_MAKE="test-network-all" COVERAGE_OPTIONS="--enable-coverage" HARDENING_OPTIONS="" TOR_TEST_RNG_SEED="636f766572616765") 13 Apr 2021 01:57PM UTC 0
0.0
Travis Job 11055.9
Source Files on build 11055
Detailed source file information is not available for this build.
  • Back to Repo
  • Travis Build #11055
  • 218f9f90 on github
  • Prev Build on maint-0.4.5 (#11048)
  • Next Build on maint-0.4.5 (#11063)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc