aboutsummaryrefslogtreecommitdiff
path: root/src/or/protover.c
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2018-06-08 10:11:57 -0400
committerNick Mathewson <nickm@torproject.org>2018-06-08 10:11:57 -0400
commit1ef8023e000d9136b7069515f9d7303810a8f3b2 (patch)
tree82c84147c3f554c3304d249889cd37d69f8faa11 /src/or/protover.c
parentf48fb8a720c7cca79249248f92e3bc99cee3414d (diff)
parent719b5c1d27c678d4c2c705a8e4942b0f93070bdc (diff)
downloadtor-1ef8023e000d9136b7069515f9d7303810a8f3b2.tar.gz
tor-1ef8023e000d9136b7069515f9d7303810a8f3b2.zip
Merge branch 'maint-0.2.9' into maint-0.3.1
Diffstat (limited to 'src/or/protover.c')
-rw-r--r--src/or/protover.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/or/protover.c b/src/or/protover.c
index 45f0377d61..e8524a25b5 100644
--- a/src/or/protover.c
+++ b/src/or/protover.c
@@ -453,6 +453,10 @@ cmp_single_ent_by_version(const void **a_, const void **b_)
static char *
contract_protocol_list(const smartlist_t *proto_strings)
{
+ if (smartlist_len(proto_strings) == 0) {
+ return tor_strdup("");
+ }
+
// map from name to list of single-version entries
strmap_t *entry_lists_by_name = strmap_new();
// list of protocol names
@@ -561,6 +565,10 @@ char *
protover_compute_vote(const smartlist_t *list_of_proto_strings,
int threshold)
{
+ if (smartlist_len(list_of_proto_strings) == 0) {
+ return tor_strdup("");
+ }
+
smartlist_t *all_entries = smartlist_new();
// First, parse the inputs and break them into singleton entries.
@@ -587,6 +595,11 @@ protover_compute_vote(const smartlist_t *list_of_proto_strings,
smartlist_free(unexpanded);
} SMARTLIST_FOREACH_END(vote);
+ if (smartlist_len(all_entries) == 0) {
+ smartlist_free(all_entries);
+ return tor_strdup("");
+ }
+
// Now sort the singleton entries
smartlist_sort_strings(all_entries);