diff options
Diffstat (limited to 'toxcore/Messenger.c')
-rw-r--r-- | toxcore/Messenger.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/toxcore/Messenger.c b/toxcore/Messenger.c index 93ed6495..9863018d 100644 --- a/toxcore/Messenger.c +++ b/toxcore/Messenger.c | |||
@@ -3160,7 +3160,14 @@ static uint8_t *save_tcp_relays(const Messenger *m, uint8_t *data) | |||
3160 | static State_Load_Status load_tcp_relays(Messenger *m, const uint8_t *data, uint32_t length) | 3160 | static State_Load_Status load_tcp_relays(Messenger *m, const uint8_t *data, uint32_t length) |
3161 | { | 3161 | { |
3162 | if (length != 0) { | 3162 | if (length != 0) { |
3163 | m->num_loaded_relays = unpack_nodes(m->loaded_relays, NUM_SAVED_TCP_RELAYS, nullptr, data, length, 1); | 3163 | const int num = unpack_nodes(m->loaded_relays, NUM_SAVED_TCP_RELAYS, nullptr, data, length, 1); |
3164 | |||
3165 | if (num == -1) { | ||
3166 | m->num_loaded_relays = 0; | ||
3167 | return STATE_LOAD_STATUS_CONTINUE; | ||
3168 | } | ||
3169 | |||
3170 | m->num_loaded_relays = num; | ||
3164 | m->has_added_relays = false; | 3171 | m->has_added_relays = false; |
3165 | } | 3172 | } |
3166 | 3173 | ||
@@ -3198,6 +3205,10 @@ static State_Load_Status load_path_nodes(Messenger *m, const uint8_t *data, uint | |||
3198 | if (length != 0) { | 3205 | if (length != 0) { |
3199 | const int num = unpack_nodes(nodes, NUM_SAVED_PATH_NODES, nullptr, data, length, 0); | 3206 | const int num = unpack_nodes(nodes, NUM_SAVED_PATH_NODES, nullptr, data, length, 0); |
3200 | 3207 | ||
3208 | if (num == -1) { | ||
3209 | return STATE_LOAD_STATUS_CONTINUE; | ||
3210 | } | ||
3211 | |||
3201 | for (int i = 0; i < num; ++i) { | 3212 | for (int i = 0; i < num; ++i) { |
3202 | onion_add_bs_path_node(m->onion_c, nodes[i].ip_port, nodes[i].public_key); | 3213 | onion_add_bs_path_node(m->onion_c, nodes[i].ip_port, nodes[i].public_key); |
3203 | } | 3214 | } |