fix
authorMiklos Szeredi <miklos@szeredi.hu>
Fri, 7 Oct 2005 12:39:58 +0000 (12:39 +0000)
committerMiklos Szeredi <miklos@szeredi.hu>
Fri, 7 Oct 2005 12:39:58 +0000 (12:39 +0000)
ChangeLog
lib/fuse.c

index e2038c1480b81699413f43839a6fe5509705419d..76e66e8ef110cddfc054db97234a5ea34feaa542 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2005-10-07  Miklos Szeredi <miklos@szeredi.hu>
+
+       * highlevel-lib: init() and destroy() methods didn't have an
+       initialized fuse_context.  Bug reported by Tim Stoakes
+
 2005-10-04  Miklos Szeredi <miklos@szeredi.hu>
 
        * Released 2.4.0
index c81fcf75aaf349d58643316072160615e746a275..f2593fe4aeaa3256907752a641608512e2ebd736 100644 (file)
@@ -564,6 +564,10 @@ static void reply_entry(fuse_req_t req, const struct fuse_entry_param *e,
 static void fuse_data_init(void *data)
 {
     struct fuse *f = (struct fuse *) data;
+    struct fuse_context *c = fuse_get_context();
+
+    memset(c, 0, sizeof(*c));
+    c->fuse = f;
 
     if (f->op.init)
         f->user_data = f->op.init();
@@ -572,6 +576,11 @@ static void fuse_data_init(void *data)
 static void fuse_data_destroy(void *data)
 {
     struct fuse *f = (struct fuse *) data;
+    struct fuse_context *c = fuse_get_context();
+
+    memset(c, 0, sizeof(*c));
+    c->fuse = f;
+    c->private_data = f->user_data;
 
     if (f->op.destroy)
         f->op.destroy(f->user_data);