Torrc parser crashing for long ExitPolicy lists
While running tor as a relay and having a long (300 lines) list of ExitPolicy directives in the torrc file I get the following error: Jan 09 19:12:55.541 [warn] router_dump_router_to_string(): Bug: descriptor policy_write_item ran out of room! Jan 09 19:12:55.541 [warn] router_rebuild_descriptor(): Bug: Couldn't generate router descriptor.
And Tor will not start.
Steps to reproduce:
- Add 200-300 lines of ExitPolicy directives for example:
ExitPolicy reject 217.169.96.0/20:, reject 217.169.112.0/20:, reject 217.170.224.0/20:* ExitPolicy reject 217.171.32.0/20:, reject 217.171.160.0/20:, reject 217.172.0.0/20:* ExitPolicy reject 217.172.192.0/19:, reject 217.174.112.0/20:, reject 217.174.128.0/20:* ...
- Start tor
- cat /var/log/tor/log Jan 09 19:12:00.938 [warn] router_dump_router_to_string(): Bug: descriptor policy_write_item ran out of room! Jan 09 19:12:00.938 [warn] router_rebuild_descriptor(): Bug: Couldn't generate router descriptor.