fix
diff --git a/lib/fuse.c b/lib/fuse.c
index a207fc0..a4d547a 100644
--- a/lib/fuse.c
+++ b/lib/fuse.c
@@ -215,7 +215,7 @@
 
     node = (struct node *) calloc(1, sizeof(struct node));
     if (node == NULL)
-        return NULL;
+        goto out_err;
 
     node->mode = mode;
     node->rdev = rdev;
@@ -225,12 +225,14 @@
     node->generation = f->generation;
     if (hash_name(f, node, parent, name) == -1) {
         free(node);
-        return NULL;
+        node = NULL;
+        goto out_err;
     }
     hash_ino(f, node);
 
-  out:
+ out:
     node->version = version;
+ out_err:
     pthread_mutex_unlock(&f->lock);
     return node;
 }