[tor-bugs] #29899 [Core Tor/Stem]: Descriptor exit_policy can raise TypeError?

Tor Bug Tracker & Wiki blackhole at torproject.org
Tue Mar 26 09:22:56 UTC 2019


#29899: Descriptor exit_policy can raise TypeError?
-------------------------------+--------------------
     Reporter:  juga           |      Owner:  atagar
         Type:  defect         |     Status:  new
     Priority:  Medium         |  Milestone:
    Component:  Core Tor/Stem  |    Version:
     Severity:  Normal         |   Keywords:
Actual Points:                 |  Parent ID:
       Points:                 |   Reviewer:
      Sponsor:                 |
-------------------------------+--------------------
 In sbws we got this traceback:

 {{{
   File "/usr/lib/python3/dist-packages/sbws/lib/relaylist.py", line 117,
 in can_exit_to_port
      if not self.exit_policy:
   File "/usr/lib/python3/dist-packages/stem/exit_policy.py", line 512, in
 __len__  # noqa
     return len(self._get_rules())
   File "/usr/lib/python3/dist-packages/stem/exit_policy.py", line 464, in
 _get_rules  # noqa
     for rule in decompressed_rules:
 TypeError: 'NoneType' object is not iterable
 }}}

 I'm a bit confused on what triggers that, because looking at stem code, it
 does not seem that `__init__` calls `_get_rules`, but this seems to happen
 when just getting the exit_policy attribute in sbws:
 https://github.com/torproject/sbws/blob/master/sbws/lib/relaylist.py#L92.

 In the moment _get_rules is call, this might happen because it is not
 check that `_input_rules` is not None:
 https://github.com/torproject/stem/blob/master/stem/exit_policy.py#L462?

 Should also `_input_rules` be assigned [] instead of None in
 https://github.com/torproject/stem/blob/master/stem/exit_policy.py#L507?

--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/29899>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online


More information about the tor-bugs mailing list