OSDN Git Service

Fix strict-aliasing rules handling with CMSG_DATA
authorMarcel Holtmann <marcel@holtmann.org>
Thu, 16 Jul 2009 06:42:06 +0000 (08:42 +0200)
committerMarcel Holtmann <marcel@holtmann.org>
Thu, 16 Jul 2009 06:42:06 +0000 (08:42 +0200)
audio/ipc.c

index dcecad8..28569dc 100644 (file)
@@ -106,8 +106,10 @@ int bt_audio_service_get_data_fd(int sk)
        for (cmsg = CMSG_FIRSTHDR(&msgh); cmsg != NULL;
                        cmsg = CMSG_NXTHDR(&msgh, cmsg)) {
                if (cmsg->cmsg_level == SOL_SOCKET
-                               && cmsg->cmsg_type == SCM_RIGHTS)
-                       return (*(int *) CMSG_DATA(cmsg));
+                               && cmsg->cmsg_type == SCM_RIGHTS) {
+                       memcpy(&ret, CMSG_DATA(cmsg), sizeof(int));
+                       return ret;
+               }
        }
 
        errno = EINVAL;