Blame SOURCES/0004-vdagent-simple-fix-for-address-of-packed-member.patch

5de96c
From 6bfbd03e83fc8fcf783d4431607d7d6129af58b0 Mon Sep 17 00:00:00 2001
5de96c
From: Victor Toso <me@victortoso.com>
5de96c
Date: Fri, 12 Jul 2019 11:12:42 +0200
5de96c
Subject: [PATCH 4/9] vdagent: simple fix for address-of-packed-member
5de96c
MIME-Version: 1.0
5de96c
Content-Type: text/plain; charset=UTF-8
5de96c
Content-Transfer-Encoding: 8bit
5de96c
5de96c
Seems to be a false positive but as this message only happens when user
5de96c
client connects, we can copy this array to make compiling warn free.
5de96c
5de96c
 > src/vdagent/vdagent.c: In function ‘daemon_read_complete’:
5de96c
 > src/vdagent/vdagent.c:226:71: error: taking address of packed member of
5de96c
 >     ‘struct VDAgentAudioVolumeSync’ may result in an unaligned pointer
5de96c
 >     value [-Werror=address-of-packed-member]
5de96c
 >   226 |             vdagent_audio_playback_sync(avs->mute, avs->nchannels, avs->volume);
5de96c
 >       |                                                                    ~~~^~~~~~~~
5de96c
 > src/vdagent/vdagent.c:228:69: error: taking address of packed member of
5de96c
 >     ‘struct VDAgentAudioVolumeSync’ may result in an unaligned pointer
5de96c
 >     value [-Werror=address-of-packed-member]
5de96c
 >   228 |             vdagent_audio_record_sync(avs->mute, avs->nchannels, avs->volume);
5de96c
 >       |                                                                  ~~~^~~~~~~~
5de96c
5de96c
Signed-off-by: Victor Toso <victortoso@redhat.com>
5de96c
Acked-by: Frediano Ziglio <fziglio@redhat.com>
5de96c
---
5de96c
 src/vdagent/vdagent.c | 7 +++++--
5de96c
 1 file changed, 5 insertions(+), 2 deletions(-)
5de96c
5de96c
diff --git a/src/vdagent/vdagent.c b/src/vdagent/vdagent.c
5de96c
index d799d1f..0e2e73e 100644
5de96c
--- a/src/vdagent/vdagent.c
5de96c
+++ b/src/vdagent/vdagent.c
5de96c
@@ -222,11 +222,14 @@ static void daemon_read_complete(struct udscs_connection **connp,
5de96c
         break;
5de96c
     case VDAGENTD_AUDIO_VOLUME_SYNC: {
5de96c
         VDAgentAudioVolumeSync *avs = (VDAgentAudioVolumeSync *)data;
5de96c
+        uint16_t *volume = g_memdup(avs->volume, sizeof(uint16_t) * avs->nchannels);
5de96c
+
5de96c
         if (avs->is_playback) {
5de96c
-            vdagent_audio_playback_sync(avs->mute, avs->nchannels, avs->volume);
5de96c
+            vdagent_audio_playback_sync(avs->mute, avs->nchannels, volume);
5de96c
         } else {
5de96c
-            vdagent_audio_record_sync(avs->mute, avs->nchannels, avs->volume);
5de96c
+            vdagent_audio_record_sync(avs->mute, avs->nchannels, volume);
5de96c
         }
5de96c
+        g_free(volume);
5de96c
         break;
5de96c
     }
5de96c
     case VDAGENTD_FILE_XFER_DATA:
5de96c
-- 
5de96c
2.21.0
5de96c