[CRIU] [PATCH 1/5] files: Get rid of strict-aliasing violations

Cyrill Gorcunov gorcunov at openvz.org
Wed Feb 1 07:24:35 EST 2012


Signed-off-by: Cyrill Gorcunov <gorcunov at openvz.org>
---
 files.c |   10 +++++++---
 1 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/files.c b/files.c
index a1ff413..abcf882 100644
--- a/files.c
+++ b/files.c
@@ -329,7 +329,8 @@ static int open_fd(int pid, struct fdinfo_entry *fe,
 		struct msghdr hdr;
 		struct iovec data;
 		char cmsgbuf[CMSG_SPACE(sizeof(int))];
-		struct cmsghdr* cmsg;
+		struct cmsghdr *cmsg;
+		int *cmsg_data;
 
 		char dummy = '*';
 
@@ -365,7 +366,8 @@ static int open_fd(int pid, struct fdinfo_entry *fe,
 		cmsg->cmsg_level = SOL_SOCKET;
 		cmsg->cmsg_type  = SCM_RIGHTS;
 
-		*(int*)CMSG_DATA(cmsg) = fe->addr;
+		cmsg_data = (int *)CMSG_DATA(cmsg);
+		*cmsg_data = fe->addr;
 
 		tmp = sendmsg(sock, &hdr, 0);
 		if (tmp < 0) {
@@ -387,6 +389,7 @@ static int recv_fd(int sock)
 	char buf[1];
 	char ccmsg[CMSG_SPACE(sizeof(int))];
 	struct cmsghdr *cmsg;
+	int *cmsg_data;
 	iov.iov_base = buf;
 	iov.iov_len = 1;
 	int ret;
@@ -411,7 +414,8 @@ static int recv_fd(int sock)
 		return -1;
 	}
 
-	return *(int*)CMSG_DATA(cmsg);
+	cmsg_data = (int *)CMSG_DATA(cmsg);
+	return *cmsg_data;
 }
 
 static int receive_fd(int pid, struct fdinfo_entry *fe, struct fdinfo_desc *fi)
-- 
1.7.7.6



More information about the CRIU mailing list