diff options
author | Nick Mathewson <nickm@torproject.org> | 2018-01-02 10:07:13 -0500 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2018-01-02 10:07:13 -0500 |
commit | d53f779853ee112ca152198f7695ac3b940719ae (patch) | |
tree | 449bce974412ebe6577c472ed73f5cf98070ffb6 | |
parent | 996328f374cb3f3b9820278b7e76ba1ee40dbfed (diff) | |
parent | 53f350182e60b32791b23ea98368a41037bffd0d (diff) | |
download | tor-d53f779853ee112ca152198f7695ac3b940719ae.tar.gz tor-d53f779853ee112ca152198f7695ac3b940719ae.zip |
Merge remote-tracking branch 'teor/ticket24001'
-rw-r--r-- | changes/ticket24001 | 4 | ||||
-rw-r--r-- | src/or/nodelist.c | 7 |
2 files changed, 11 insertions, 0 deletions
diff --git a/changes/ticket24001 b/changes/ticket24001 new file mode 100644 index 0000000000..4701a38ede --- /dev/null +++ b/changes/ticket24001 @@ -0,0 +1,4 @@ + o Minor features (code correctness, descriptors): + - Check that microdesc ed25519 ids are non-zero in node_get_ed25519_id(), + before returning them. + Implements 24001, patch by "aruna1234". diff --git a/src/or/nodelist.c b/src/or/nodelist.c index e6eaefb216..4eafe6d7a7 100644 --- a/src/or/nodelist.c +++ b/src/or/nodelist.c @@ -908,9 +908,12 @@ node_get_ed25519_id(const node_t *node) { const ed25519_public_key_t *ri_pk = NULL; const ed25519_public_key_t *md_pk = NULL; + if (node->ri) { if (node->ri->cache_info.signing_key_cert) { ri_pk = &node->ri->cache_info.signing_key_cert->signing_key; + /* Checking whether routerinfo ed25519 is all zero. + * Our descriptor parser should make sure this never happens. */ if (BUG(ed25519_public_key_is_zero(ri_pk))) ri_pk = NULL; } @@ -919,6 +922,10 @@ node_get_ed25519_id(const node_t *node) if (node->md) { if (node->md->ed25519_identity_pkey) { md_pk = node->md->ed25519_identity_pkey; + /* Checking whether microdesc ed25519 is all zero. + * Our descriptor parser should make sure this never happens. */ + if (BUG(ed25519_public_key_is_zero(md_pk))) + md_pk = NULL; } } |