]> git.ipfire.org Git - thirdparty/lxc.git/commitdiff
fix compilation warnings
authorDaniel Lezcano <dlezcano@fr.ibm.com>
Tue, 1 Jun 2010 10:13:32 +0000 (12:13 +0200)
committerDaniel Lezcano <dlezcano@fr.ibm.com>
Tue, 1 Jun 2010 10:13:32 +0000 (12:13 +0200)
Fix the following warnings:

console.c: In function ‘console_handler’:
console.c:252: warning: ignoring return value of ‘write’, declared with attribute warn_unused_result
console.c:254: warning: ignoring return value of ‘write’, declared with attribute warn_unused_result
conf.c: In function ‘instanciate_veth’:
conf.c:1130: warning: ignoring return value of ‘mktemp’, declared with attribute warn_unused_result
conf.c:1135: warning: ignoring return value of ‘mktemp’, declared with attribute warn_unused_result
conf.c: In function ‘instanciate_macvlan’:
conf.c:1206: warning: ignoring return value of ‘mktemp’, declared with attribute warn_unused_result
af_unix.c: In function ‘lxc_af_unix_send_fd’:
af_unix.c:124: warning: dereferencing type-punned pointer will break strict-aliasing rules
af_unix.c: In function ‘lxc_af_unix_recv_fd’:
af_unix.c:169: warning: dereferencing type-punned pointer will break strict-aliasing rules
af_unix.c: In function ‘lxc_af_unix_send_credential’:
af_unix.c:195: warning: dereferencing type-punned pointer will break strict-aliasing rules
af_unix.c: In function ‘lxc_af_unix_rcv_credential’:
af_unix.c:237: warning: dereferencing type-punned pointer will break strict-aliasing rules

Signed-off-by: Daniel Lezcano <dlezcano@fr.ibm.com>
src/lxc/af_unix.c
src/lxc/conf.c
src/lxc/console.c

index fdbf1134f8baa3b622a609a57e7689025c20f55b..6d6cca1d6a0c70f161d72ac009f47a43532dd345 100644 (file)
@@ -113,6 +113,7 @@ int lxc_af_unix_send_fd(int fd, int sendfd, void *data, size_t size)
         struct cmsghdr *cmsg;
         char cmsgbuf[CMSG_SPACE(sizeof(int))];
         char buf[1];
+       int *val;
 
         msg.msg_control = cmsgbuf;
         msg.msg_controllen = sizeof(cmsgbuf);
@@ -121,7 +122,8 @@ int lxc_af_unix_send_fd(int fd, int sendfd, void *data, size_t size)
         cmsg->cmsg_len = CMSG_LEN(sizeof(int));
         cmsg->cmsg_level = SOL_SOCKET;
         cmsg->cmsg_type = SCM_RIGHTS;
-        *((int *) CMSG_DATA(cmsg)) = sendfd;
+       val = (int *)(CMSG_DATA(cmsg));
+       *val = sendfd;
 
         msg.msg_name = NULL;
         msg.msg_namelen = 0;
@@ -141,7 +143,7 @@ int lxc_af_unix_recv_fd(int fd, int *recvfd, void *data, size_t size)
         struct cmsghdr *cmsg;
         char cmsgbuf[CMSG_SPACE(sizeof(int))];
         char buf[1];
-       int ret;
+       int ret, *val;
 
         msg.msg_name = NULL;
         msg.msg_namelen = 0;
@@ -166,7 +168,8 @@ int lxc_af_unix_recv_fd(int fd, int *recvfd, void *data, size_t size)
         if (cmsg && cmsg->cmsg_len == CMSG_LEN(sizeof(int)) &&
             cmsg->cmsg_level == SOL_SOCKET &&
             cmsg->cmsg_type == SCM_RIGHTS) {
-                *recvfd = *((int *) CMSG_DATA(cmsg));
+               val = (int *) CMSG_DATA(cmsg);
+                *recvfd = *val;
         }
 out:
         return ret;
@@ -192,7 +195,7 @@ int lxc_af_unix_send_credential(int fd, void *data, size_t size)
         cmsg->cmsg_len = CMSG_LEN(sizeof(struct ucred));
         cmsg->cmsg_level = SOL_SOCKET;
         cmsg->cmsg_type = SCM_CREDENTIALS;
-       *((struct ucred *) CMSG_DATA(cmsg)) = cred;
+       memcpy(CMSG_DATA(cmsg), &cred, sizeof(cred));
 
         msg.msg_name = NULL;
         msg.msg_namelen = 0;
@@ -234,7 +237,7 @@ int lxc_af_unix_rcv_credential(int fd, void *data, size_t size)
         if (cmsg && cmsg->cmsg_len == CMSG_LEN(sizeof(struct ucred)) &&
             cmsg->cmsg_level == SOL_SOCKET &&
             cmsg->cmsg_type == SCM_CREDENTIALS) {
-                cred = *((struct ucred *) CMSG_DATA(cmsg));
+               memcpy(&cred, CMSG_DATA(cmsg), sizeof(cred));
                if (cred.uid && (cred.uid != getuid() || cred.gid != getgid())) {
                        INFO("message denied for '%d/%d'", cred.uid, cred.gid);
                        return -EACCES;
index ba3966e5b1ba2863009a4e406fc13b1d1025f4f1..3d550a71ddd3cf58a06a68ca7498a8b40791011c 100644 (file)
@@ -1120,19 +1120,18 @@ struct lxc_conf *lxc_conf_init(void)
 static int instanciate_veth(struct lxc_netdev *netdev)
 {
        char veth1buf[IFNAMSIZ], *veth1;
-       char veth2[IFNAMSIZ];
+       char veth2buf[IFNAMSIZ], *veth2;
        int err;
 
        if (netdev->priv.veth_attr.pair)
                veth1 = netdev->priv.veth_attr.pair;
        else {
                snprintf(veth1buf, sizeof(veth1buf), "vethXXXXXX");
-               mktemp(veth1buf);
-               veth1 = veth1buf;
+               veth1 = mktemp(veth1buf);
        }
 
-       snprintf(veth2, sizeof(veth2), "vethXXXXXX");
-       mktemp(veth2);
+       snprintf(veth2buf, sizeof(veth2buf), "vethXXXXXX");
+       veth2 = mktemp(veth2buf);
 
        if (!strlen(veth1) || !strlen(veth2)) {
                ERROR("failed to allocate a temporary name");
@@ -1193,7 +1192,7 @@ out_delete:
 
 static int instanciate_macvlan(struct lxc_netdev *netdev)
 {
-       char peer[IFNAMSIZ];
+       char peerbuf[IFNAMSIZ], *peer;
        int err;
 
        if (!netdev->link) {
@@ -1201,10 +1200,9 @@ static int instanciate_macvlan(struct lxc_netdev *netdev)
                return -1;
        }
 
-       snprintf(peer, sizeof(peer), "mcXXXXXX");
-
-       mktemp(peer);
+       snprintf(peerbuf, sizeof(peerbuf), "mcXXXXXX");
 
+       peer = mktemp(peerbuf);
        if (!strlen(peer)) {
                ERROR("failed to make a temporary name");
                return -1;
index d40a51159cc906f9d4ea7a0b0bbcdd5f8d1b7c50..3c0d3788ab1f89620b4623fc183e8676f0f11a78 100644 (file)
@@ -249,9 +249,9 @@ static int console_handler(int fd, void *data, struct lxc_epoll_descr *descr)
                return 0;
 
        if (console->peer == fd)
-               write(console->master, buf, r);
+               r = write(console->master, buf, r);
        else
-               write(console->peer, buf, r);
+               r = write(console->peer, buf, r);
 
        return 0;
 }