Fix unaligned access in file desctriptor passing
authorMiklos Szeredi <miklos@szeredi.hu>
Tue, 2 Jan 2007 20:46:29 +0000 (20:46 +0000)
committerMiklos Szeredi <miklos@szeredi.hu>
Tue, 2 Jan 2007 20:46:29 +0000 (20:46 +0000)
ChangeLog
lib/mount.c
lib/ulockmgr.c
util/fusermount.c
util/ulockmgr_server.c

index 9fbdfb7fd20e45a282da341863977854bcfdecfc..ae90dfa57920668dab0a0ec1a5d1aab2c986abc8 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2007-01-02  Miklos Szeredi <miklos@szeredi.hu>
+
+       * 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 <miklos@szeredi.hu>
 
        * fusermount: Fix detection of fuseblk.  Reported by Szakacsits
index a72294bef461e4f308199e9e1ab367631fa777fe..cbdedf36851d01692cdbe2a3be175ef2a53f71a2 100644 (file)
@@ -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;
index 9e9c2b65a1b91676be86c21ebccd9b0c7320ace5..bf27b36a8b6a916965b281092134d424e9111a45 100644 (file)
@@ -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);
index 41ef53d19749b2046225a9531a263b24fffeae5d..7e768031bdfc88a4169f6abbccd6b60938bc6f29 100644 (file)
@@ -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;
 
index 0d00975f44ca415a1e211d75f2ccaafc2e583d53..211d74ace30dc9b80b5575e99c0835e4153e4b73 100644 (file)
@@ -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;