From: Vladimir Serbinenko Date: Wed, 20 Nov 2024 18:16:16 +0000 (+0300) Subject: Fix alignment of allocation in fuse_reply_create X-Git-Tag: fuse-3.17.1-rc0~46 X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=66a03d4e4b0956d02bd820e591f64f49917f22ae;p=qemu-gpiodev%2Flibfuse.git Fix alignment of allocation in fuse_reply_create When allocating as an array of char only alignment of 1 is guaranteed but the structure needs an alignment of 8. Specify alignment explicitly --- diff --git a/lib/fuse_lowlevel.c b/lib/fuse_lowlevel.c index aa1de87..9cc96e9 100644 --- a/lib/fuse_lowlevel.c +++ b/lib/fuse_lowlevel.c @@ -23,6 +23,7 @@ #include #include #include +#include #include #include #include @@ -446,7 +447,7 @@ int fuse_reply_entry(fuse_req_t req, const struct fuse_entry_param *e) int fuse_reply_create(fuse_req_t req, const struct fuse_entry_param *e, const struct fuse_file_info *f) { - char buf[sizeof(struct fuse_entry_out) + sizeof(struct fuse_open_out)]; + alignas(uint64_t) char buf[sizeof(struct fuse_entry_out) + sizeof(struct fuse_open_out)]; size_t entrysize = req->se->conn.proto_minor < 9 ? FUSE_COMPAT_ENTRY_OUT_SIZE : sizeof(struct fuse_entry_out); struct fuse_entry_out *earg = (struct fuse_entry_out *) buf;