aboutsummaryrefslogtreecommitdiff
path: root/src/or/protover.c
AgeCommit message (Collapse)Author
2018-09-21Merge branch 'maint-0.2.9' into maint-0.3.2maint-0.3.2Nick Mathewson
2018-09-14protover: reject invalid protocol namescypherpunks
The spec only allows the characters [A-Za-z0-9-]. Fix on b2b2e1c7f24d9b65059e3d089768d6c49ba4f58f. Fixes #27316; bugfix on 0.2.9.4-alpha.
2018-06-08Merge branch 'maint-0.2.9' into maint-0.3.1Nick Mathewson
2018-06-08Avoid out-of-bounds smartlist access in protover_compute_vote()rl1987
and contract_protocol_list()
2018-03-01Merge branch 'maint-0.2.9' into maint-0.3.1Nick Mathewson
2018-03-01Spec conformance on protover: always reject ranges where lo>hiNick Mathewson
2018-03-01Forbid UINT32_MAX as a protocol versionNick Mathewson
The C code and the rust code had different separate integer overflow bugs here. That suggests that we're better off just forbidding this pathological case. Also, add tests for expected behavior on receiving a bad protocol list in a consensus. Fixes another part of 25249.
2018-03-01Forbid "-0" as a protocol version.Nick Mathewson
Fixes part of 24249; bugfix on 0.2.9.4-alpha.
2018-03-01Add another NULL-pointer fix for protover.c.Nick Mathewson
This one can only be exploited if you can generate a correctly signed consensus, so it's not as bad as 25074. Fixes bug 25251; also tracked as TROVE-2018-004.
2018-03-01Correctly handle NULL returns from parse_protocol_list when voting.Nick Mathewson
In some cases we had checked for it, but in others we had not. One of these cases could have been used to remotely cause denial-of-service against directory authorities while they attempted to vote. Fixes TROVE-2018-001.
2018-01-30Add Link protocol version 5 to the supported protocols list in protover.cteor
Part of #25070, bugfix on 0.3.1.1-alpha.
2017-11-30Merge branch 'maint-0.3.0' into maint-0.3.1Nick Mathewson
2017-11-30Merge branch 'maint-0.2.9' into maint-0.3.0Nick Mathewson
2017-11-27Handle NULL input to protover_compute_for_old_tor()Nick Mathewson
Fixes bug 24245; bugfix on 0.2.9.4-alpha. TROVE-2017-010.
2017-05-15Dircache protocol version 2 adds support for diffsNick Mathewson
2017-03-15Run the copyright update script.Nick Mathewson
2017-02-14protover: Add new version for prop224 for HSIntro/HSDirDavid Goulet
Signed-off-by: David Goulet <dgoulet@torproject.org>
2016-12-02Merge branch 'maint-0.2.9'Nick Mathewson
2016-12-02protover: Fix old tor hardcoded version checkDavid Goulet
When computing old Tor protocol line version in protover, we were looking at 0.2.7.5 twice instead of the specific case for 0.2.9.1-alpha. Fixes #20810 Signed-off-by: David Goulet <dgoulet@torproject.org>
2016-11-10Merge remote-tracking branch 'public/feature20552'Nick Mathewson
2016-11-06Merge branch 'maint-0.2.9'Nick Mathewson
2016-11-06Finish a sentence in a comment. Close 20576.Nick Mathewson
2016-11-03Declare a LINKAUTH subprotocol version for #15055 (ed link handshake)Nick Mathewson
Closes ticket 20552.
2016-10-27Automated change to use smartlist_add_strdupovercaffeinated
Use the following coccinelle script to change uses of smartlist_add(sl, tor_strdup(str)) to smartlist_add_strdup(sl, string) (coccinelle script from nickm via bug 20048): @@ expression a; expression b; @@ - smartlist_add + smartlist_add_strdup (a, - tor_strdup( b - ) )
2016-10-17Write a bunch of module documentation.Nick Mathewson
This commit adds or improves the module-level documenation for: buffers.c circuitstats.c command.c connection_edge.c control.c cpuworker.c crypto_curve25519.c crypto_curve25519.h crypto_ed25519.c crypto_format.c dircollate.c dirserv.c dns.c dns_structs.h fp_pair.c geoip.c hibernate.c keypin.c ntmain.c onion.c onion_fast.c onion_ntor.c onion_tap.c periodic.c protover.c protover.h reasons.c rephist.c replaycache.c routerlist.c routerparse.c routerset.c statefile.c status.c tor_main.c workqueue.c In particular, I've tried to explain (for each documented module) what each module does, what's in it, what the big idea is, why it belongs in Tor, and who calls it. In a few cases, I've added TODO notes about refactoring opportunities. I've also renamed an argument, and fixed a few DOCDOC comments.
2016-09-26fix a warning in protover.Nick Mathewson
2016-09-26Update prop264 implementation to split HSMid->HS{Intro,Rend}Nick Mathewson
2016-09-26Rename get_supported_protocols to protover_get_supported_protocolsNick Mathewson
2016-09-26Rename compute_protover_vote to protover_compute_voteNick Mathewson
2016-09-26Clean whitespace, add missing documentationNick Mathewson
2016-09-26Remove DoS vector in protover.c voting codeNick Mathewson
2016-09-26Use protocols to see when EXTEND2 support exists.Nick Mathewson
(Technically, we could just remove extend2 cell checking entirely, since all Tor versions on our network are required to have it, but let's keep this around as an example of How To Do It.)
2016-09-26Workaround a test bugNick Mathewson
2016-09-26Add code to infer protocol versions for old Tor versions.Nick Mathewson
2016-09-26Cover the error cases of parsing protocol versionsNick Mathewson
Also, detect an additional failure type. Thanks, tests! (How distinctly I recall thee)
2016-09-26Basic backend for the protocol-versions voting algorithm.Nick Mathewson
[This is a brute-force method that potentially uses way too much RAM. Need to rethink this a little. Right now you can DOS an authority by saying "Foo=1-4294967295".]
2016-09-26checkpoint basic protover backendNick Mathewson