[tor-bugs] #26112 [Core Tor/Stem]: Stem should not use human-readable message of GETCONF 552 response

Tor Bug Tracker & Wiki blackhole at torproject.org
Tue May 15 21:46:56 UTC 2018


#26112: Stem should not use human-readable message of GETCONF 552 response
-------------------------------+---------------------------
     Reporter:  dmr            |      Owner:  atagar
         Type:  defect         |     Status:  new
     Priority:  Low            |  Milestone:
    Component:  Core Tor/Stem  |    Version:
     Severity:  Minor          |   Keywords:  control, easy
Actual Points:                 |  Parent ID:
       Points:                 |   Reviewer:
      Sponsor:                 |
-------------------------------+---------------------------
 Both `tor` and `stem` use a message format for `GETCONF` `552` errors that
 differs from [[https://gitweb.torproject.org/torspec.git/tree/control-
 spec.txt?id=436d08b49fb84aa62d7bc96013002a0c27534bbb#n307|the wording of
 the control spec's `GETCONF` response]].

 `GETCONF` output via `tor-prompt`:
 {{{
 >>> GETCONF blah
 552 Unrecognized configuration key "blah"
 }}}

 Stem //expects// this format; see
 [[https://gitweb.torproject.org/stem.git/tree/stem/response/getconf.py?id=aa692e62bfda5be8b87e463c3c899cb13968d32a#n33|`GetConfResponse`]]:
 {{{
 #!python
       unrecognized_keywords = []
       for code, _, line in self.content():
         if code == '552' and line.startswith('Unrecognized configuration
 key "') and line.endswith('"'):
           unrecognized_keywords.append(line[32:-1])

       if unrecognized_keywords:
         raise stem.InvalidArguments('552', 'GETCONF request contained
 unrecognized keywords: %s' % ', '.join(unrecognized_keywords),
 unrecognized_keywords)
       else:
         raise stem.ProtocolError('GETCONF response contained a non-OK
 status code:\n%s' % self)
 }}}

 My `tor` version, for reference:
 {{{
 >>> GETINFO version
 250-version=0.3.2.10 (git-0edaa32732ec8930)
 250 OK
 }}}

 ==== Historical note
 In searching (for potential duplicates) to file this ticket, I happened
 upon the original ticket: #6114

 ==== Priority, Severity
 I'm marking this as low,minor because it appears the code will work
 decently well (still raise //an// exception) if the message format
 changes.

 ==== Expected behavior
 In discussion over `#tor-dev`, it was agreed that `stem` (and generally
 any controller) shouldn't rely on a specific message. Only the numeric
 code `552` should be relied upon.

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


More information about the tor-bugs mailing list