]> git.meshlink.io Git - meshlink/commitdiff
Fix meshlink_close().
authorGuus Sliepen <guus@sliepen.org>
Tue, 29 Jul 2014 15:57:20 +0000 (17:57 +0200)
committerGuus Sliepen <guus@sliepen.org>
Tue, 29 Jul 2014 15:57:20 +0000 (17:57 +0200)
Exit early when mesh->confbase = NULL. That should only happen after
meshlink_close() has already been called. Also, memset() before free(),
not after.

src/meshlink.c

index 3651988fa5c9c66c337c2df5482a1a1df7350ae4..b27d97c6643ec4d0865a2d3bde5630ce2c5c4116 100644 (file)
@@ -841,7 +841,7 @@ void meshlink_stop(meshlink_handle_t *mesh) {
 }
 
 void meshlink_close(meshlink_handle_t *mesh) {
-       if(!mesh)
+       if(!mesh || !mesh->confbase)
                return;
 
        // Close and free all resources used.
@@ -863,9 +863,9 @@ void meshlink_close(meshlink_handle_t *mesh) {
        free(mesh->name);
        free(mesh->confbase);
 
-       free(mesh);
-
        memset(mesh, 0, sizeof *mesh);
+
+       free(mesh);
 }
 
 void meshlink_set_receive_cb(meshlink_handle_t *mesh, meshlink_receive_cb_t cb) {