aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorGravatar Miklos Szeredi <mszeredi@suse.cz>2013-02-07 14:59:28 +0100
committerGravatar Miklos Szeredi <mszeredi@suse.cz>2013-02-07 14:59:28 +0100
commit1bea285a3a586c97597b1f690f14051ff63f3f0b (patch)
treecee75e141538bbdb7cd74557c14b26d1cfb8f69b /lib
parent74f9acbd18c55708698831b4cfb980c262ee91ee (diff)
libfuse-fix-fs-cleanup
This fixes a segmentation fault if command-line option parsing fails during initialization. Reported by Eric Wong
Diffstat (limited to 'lib')
-rw-r--r--lib/fuse.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/lib/fuse.c b/lib/fuse.c
index 401a263..fc10135 100644
--- a/lib/fuse.c
+++ b/lib/fuse.c
@@ -4584,10 +4584,9 @@ out_free_name_table:
out_free_session:
fuse_session_destroy(f->se);
out_free_fs:
- /* Horrible compatibility hack to stop the destructor from being
- called on the filesystem without init being called first */
- fs->op.destroy = NULL;
- fuse_fs_destroy(f->fs);
+ if (f->fs->m)
+ fuse_put_module(f->fs->m);
+ free(f->fs);
free(f->conf.modules);
out_free:
free(f);