[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

0.2.3.0 as an exit: identity_digest not set



Here's another bug report.  [No patch this time, I'm afraid. :-( ]

When we try to use 0.2.3.0 as an exit, circuit construction succeeds,
but stream creation fails almost all the time.  The failure is in
connection_edge.c, here:

    if (or_circ && or_circ->p_conn && !options->AllowSingleHopExits &&
        (or_circ->is_first_hop ||
         (!connection_or_digest_is_known_relay(
                                       or_circ->p_conn->identity_digest) &&
          should_refuse_unknown_exits(options)))) {

Almost always (on both a PlanetLab test network and the live Tor
network), or_circ->p_conn->identity_digest is just a bunch of NULs,
so connection_or_digest_is_known_relay naturally returns false.
Weirdly, I've seen it *not* fail once or twice, but I can't replicate
the non-failure.

Commenting out the body of the if makes the problem go away, but of
course it removes the single-hop protection.

Any ideas?

Thanks,

   - Ian