[tor-bugs] #6827 [Tor Relay]: UB in rend_parse_v2_service_descriptor()
Tor Bug Tracker & Wiki
torproject-admin at torproject.org
Thu Sep 13 06:49:22 UTC 2012
#6827: UB in rend_parse_v2_service_descriptor()
-----------------------+----------------------------------------------------
Reporter: asn | Owner:
Type: defect | Status: new
Priority: normal | Milestone: Tor: 0.2.3.x-final
Component: Tor Relay | Version:
Keywords: | Parent:
Points: | Actualpoints:
-----------------------+----------------------------------------------------
Comment(by rransom):
Replying to [comment:1 nickm]:
> Seems harmless at first glance; if version is greater than the width of
protocols, then we'll just ignore the value. But AFAIK, we should also
never actually use the value if it describes a protocol we can't speak, so
our failure to record it shouldn't matter.
>
> So the desired behavior (ignore protocols we can't speak) would seem
identical to the current behavior.
The current behaviour on at least one computer (with 8-bit bytes) that I
have had is `result->protocols |= (1 << (version %
(sizeof(result->protocols) * 8)));`.
Shifting left by more bits at once than an integer has really does produce
undefined behaviour (‘UB’).
--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/6827#comment:2>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online
More information about the tor-bugs
mailing list