From: Miklos Szeredi Date: Tue, 2 Jan 2007 20:46:29 +0000 (+0000) Subject: Fix unaligned access in file desctriptor passing X-Git-Tag: fuse_2_6_merge1~2 X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=fac7b10214e25bc444ca947b770a9ae8227aaa79;p=qemu-gpiodev%2Flibfuse.git Fix unaligned access in file desctriptor passing --- diff --git a/ChangeLog b/ChangeLog index 9fbdfb7..ae90dfa 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2007-01-02 Miklos Szeredi + + * Fix unaligned access in file desctriptor passing in libfuse, + fusermount and ulockmgr. Debian bug ID: 404904. Reported and + tested by Sebastian Fontius + 2006-12-15 Miklos Szeredi * fusermount: Fix detection of fuseblk. Reported by Szakacsits diff --git a/lib/mount.c b/lib/mount.c index a72294b..cbdedf3 100644 --- a/lib/mount.c +++ b/lib/mount.c @@ -151,7 +151,7 @@ static int receive_fd(int fd) struct iovec iov; char buf[1]; int rv; - char ccmsg[CMSG_SPACE(sizeof(int))]; + size_t ccmsg[CMSG_SPACE(sizeof(int)) / sizeof(size_t)]; struct cmsghdr *cmsg; iov.iov_base = buf; diff --git a/lib/ulockmgr.c b/lib/ulockmgr.c index 9e9c2b6..bf27b36 100644 --- a/lib/ulockmgr.c +++ b/lib/ulockmgr.c @@ -75,7 +75,7 @@ static int ulockmgr_send_message(int sock, void *buf, size_t buflen, struct msghdr msg; struct cmsghdr *p_cmsg; struct iovec vec; - char cmsgbuf[CMSG_SPACE(sizeof(int) * MAX_SEND_FDS)]; + size_t cmsgbuf[CMSG_SPACE(sizeof(int) * MAX_SEND_FDS) / sizeof(size_t)]; int res; assert(numfds <= MAX_SEND_FDS); diff --git a/util/fusermount.c b/util/fusermount.c index 41ef53d..7e76803 100644 --- a/util/fusermount.c +++ b/util/fusermount.c @@ -1036,7 +1036,7 @@ static int send_fd(int sock_fd, int fd) struct msghdr msg; struct cmsghdr *p_cmsg; struct iovec vec; - char cmsgbuf[CMSG_SPACE(sizeof(fd))]; + size_t cmsgbuf[CMSG_SPACE(sizeof(fd)) / sizeof(size_t)]; int *p_fds; char sendchar = 0; diff --git a/util/ulockmgr_server.c b/util/ulockmgr_server.c index 0d00975..211d74a 100644 --- a/util/ulockmgr_server.c +++ b/util/ulockmgr_server.c @@ -58,7 +58,7 @@ static int receive_message(int sock, void *buf, size_t buflen, int *fdp, { struct msghdr msg; struct iovec iov; - char ccmsg[CMSG_SPACE(sizeof(int)) * MAX_SEND_FDS]; + size_t ccmsg[CMSG_SPACE(sizeof(int) * MAX_SEND_FDS) / sizeof(size_t)]; struct cmsghdr *cmsg; int res; int i;