]> git.meshlink.io Git - meshlink/blobdiff - src/meshlink.c
Move assert()s that dereference a pointer to after the pointer NULL check.
[meshlink] / src / meshlink.c
index 903ff09a2040049d1b979bf8b3689bcb0ee42657..fbacfd4a4131a813d8f2119a11472303a00f4886 100644 (file)
@@ -743,6 +743,10 @@ static bool finalize_join(join_state_t *state, const void *buf, uint16_t len) {
                return false;
        }
 
+       if(!mesh->inviter_commits_first) {
+               devtool_set_inviter_commits_first(false);
+       }
+
        sptps_send_record(&state->sptps, 1, ecdsa_get_public_key(mesh->private_key), 32);
 
        logger(mesh, MESHLINK_DEBUG, "Configuration stored in: %s\n", mesh->confbase);
@@ -1554,9 +1558,6 @@ static void *meshlink_main_loop(void *arg) {
 }
 
 bool meshlink_start(meshlink_handle_t *mesh) {
-       assert(mesh->self);
-       assert(mesh->private_key);
-
        if(!mesh) {
                meshlink_errno = MESHLINK_EINVAL;
                return false;
@@ -1566,6 +1567,8 @@ bool meshlink_start(meshlink_handle_t *mesh) {
 
        pthread_mutex_lock(&mesh->mutex);
 
+       assert(mesh->self);
+       assert(mesh->private_key);
        assert(mesh->self->ecdsa);
        assert(!memcmp((uint8_t *)mesh->self->ecdsa + 64, (uint8_t *)mesh->private_key + 64, 32));
 
@@ -2275,7 +2278,7 @@ bool meshlink_sign(meshlink_handle_t *mesh, const void *data, size_t len, void *
 }
 
 bool meshlink_verify(meshlink_handle_t *mesh, meshlink_node_t *source, const void *data, size_t len, const void *signature, size_t siglen) {
-       if(!mesh || !data || !len || !signature) {
+       if(!mesh || !source || !data || !len || !signature) {
                meshlink_errno = MESHLINK_EINVAL;
                return false;
        }