aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Miklos Szeredi <miklos@szeredi.hu>2006-02-20 10:55:33 +0000
committerGravatar Miklos Szeredi <miklos@szeredi.hu>2006-02-20 10:55:33 +0000
commitb67f216be63ebde58c08e7fc4331afd610a24502 (patch)
tree5ab4266c57ff45e0633d474e8592057c642d7e1d
parent1bf64f48067728cc470c3779f7eec78a0ffbd2c5 (diff)
merge 2_5_bugfix branch
-rw-r--r--ChangeLog8
-rw-r--r--lib/fuse.c3
-rw-r--r--lib/mount.c2
3 files changed, 11 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index d6a1d1b..a18c55a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2006-02-19 Miklos Szeredi <miklos@szeredi.hu>
+
+ * libfuse: fix use-after-free bug in interruptred reply_entry().
+ Patch from John Muir
+
+ * libfuse: fix wrong symbol versioning for fuse_mount. Debian bug
+ ID: 352631. Found by Stéphane Rosi
+
2006-02-17 Miklos Szeredi <miklos@szeredi.hu>
* Lowlevel lib: Unify fuse_dirent_size() and fuse_add_dirent()
diff --git a/lib/fuse.c b/lib/fuse.c
index f930404..0ce05a6 100644
--- a/lib/fuse.c
+++ b/lib/fuse.c
@@ -603,8 +603,9 @@ static void reply_entry(fuse_req_t req, const struct fuse_entry_param *e,
int err)
{
if (!err) {
+ struct fuse *f = req_fuse(req);
if (fuse_reply_entry(req, e) == -ENOENT)
- forget_node(req_fuse(req), e->ino, 1);
+ forget_node(f, e->ino, 1);
} else
reply_err(req, err);
}
diff --git a/lib/mount.c b/lib/mount.c
index 2840a54..0a14df3 100644
--- a/lib/mount.c
+++ b/lib/mount.c
@@ -292,4 +292,4 @@ int fuse_mount_compat1(const char *mountpoint, const char *args[])
return fuse_mount_compat22(mountpoint, NULL);
}
-__asm__(".symver fuse_mount_compat22,fuse_mount@");
+__asm__(".symver fuse_mount_compat22,fuse_mount@FUSE_2.2");