From: Miklos Szeredi Date: Fri, 7 Oct 2005 12:39:58 +0000 (+0000) Subject: fix X-Git-Tag: fuse_2_4_1~7 X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=4f5df5eb96153534fb1592dec920f4a8e1c806f4;p=qemu-gpiodev%2Flibfuse.git fix --- diff --git a/ChangeLog b/ChangeLog index e2038c1..76e66e8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2005-10-07 Miklos Szeredi + + * highlevel-lib: init() and destroy() methods didn't have an + initialized fuse_context. Bug reported by Tim Stoakes + 2005-10-04 Miklos Szeredi * Released 2.4.0 diff --git a/lib/fuse.c b/lib/fuse.c index c81fcf7..f2593fe 100644 --- a/lib/fuse.c +++ b/lib/fuse.c @@ -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);