From: Miklos Szeredi Date: Wed, 26 Mar 2014 15:46:38 +0000 (+0100) Subject: Initilaize stat buffer passed to ->getattr() and ->fgetattr() X-Git-Tag: fuse_2_9_4~4 X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=4e8f86d4d6de46cb2404eab37268c3b53308cb3a;p=qemu-gpiodev%2Flibfuse.git Initilaize stat buffer passed to ->getattr() and ->fgetattr() to zero in all cases. Reported by Daniel Iwan. --- diff --git a/ChangeLog b/ChangeLog index da3b11a..4c3d136 100644 --- a/ChangeLog +++ b/ChangeLog @@ -10,6 +10,11 @@ result in EINVAL when mounting the filesystem. This also needs a fix in the kernel. +2014-03-26 Miklos Szeredi + + * Initilaize stat buffer passed to ->getattr() and ->fgetattr() to + zero in all cases. Reported by Daniel Iwan + 2013-08-26 Miklos Szeredi * libfuse: Add missing includes. This allows compiling fuse with diff --git a/lib/fuse.c b/lib/fuse.c index 7ba654a..fa0a814 100644 --- a/lib/fuse.c +++ b/lib/fuse.c @@ -2396,6 +2396,7 @@ static char *hidden_name(struct fuse *f, fuse_ino_t dir, const char *oldname, if (res) break; + memset(&buf, 0, sizeof(buf)); res = fuse_fs_getattr(f->fs, newpath, &buf); if (res == -ENOENT) break; @@ -2769,6 +2770,7 @@ static void fuse_lib_setattr(fuse_req_t req, fuse_ino_t ino, struct stat *attr, char *path; int err; + memset(&buf, 0, sizeof(buf)); if (valid == FUSE_SET_ATTR_SIZE && fi != NULL && f->fs->op.ftruncate && f->fs->op.fgetattr) err = get_path_nullok(f, ino, &path);