fix
diff --git a/lib/fuse.c b/lib/fuse.c
index 04fb2f0..86e97b1 100644
--- a/lib/fuse.c
+++ b/lib/fuse.c
@@ -1626,7 +1626,7 @@
if (newlen > dh->needlen)
return 1;
}
-
+
newptr = realloc(dh->contents, newlen);
if (!newptr) {
dh->error = -ENOMEM;
@@ -1805,7 +1805,7 @@
if ((f->flags & FUSE_ALLOW_ROOT) && in->uid != f->owner && in->uid != 0 &&
in->opcode != FUSE_INIT && in->opcode != FUSE_READ &&
- in->opcode != FUSE_WRITE && in->opcode != FUSE_FSYNC &&
+ in->opcode != FUSE_WRITE && in->opcode != FUSE_FSYNC &&
in->opcode != FUSE_RELEASE && in->opcode != FUSE_READDIR &&
in->opcode != FUSE_FSYNCDIR && in->opcode != FUSE_RELEASEDIR) {
send_reply(f, in, -EACCES, NULL, 0);
@@ -2199,8 +2199,10 @@
for (node = f->id_table[i]; node != NULL; node = node->id_next) {
if (node->is_hidden) {
char *path = get_path(f, node->nodeid);
- if (path)
+ if (path) {
f->op.unlink(path);
+ free(path);
+ }
}
}
}