While it seems to be common practice to just work around the cast to
integer and assume alignment is fine, let's play it safe and do it right
by memcpy'ing.
---
 src/modules/bluetooth/ipc.c |    7 +++++--
 1 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/src/modules/bluetooth/ipc.c b/src/modules/bluetooth/ipc.c
index dcecad8..fdca7a3 100644
--- a/src/modules/bluetooth/ipc.c
+++ b/src/modules/bluetooth/ipc.c
@@ -106,8 +106,11 @@ 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) {
+                       int fd;
+                       memcpy(&fd, CMSG_DATA(cmsg), sizeof(int));
+                       return fd;
+               }
        }
 
        errno = EINVAL;
-- 
1.7.4.1

_______________________________________________
pulseaudio-discuss mailing list
pulseaudio-discuss@mail.0pointer.de
https://tango.0pointer.de/mailman/listinfo/pulseaudio-discuss

Reply via email to