[linux/vd-agent v1 7/7] vdagent: simple fix for address-of-packed-member

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



From: Victor Toso <me@xxxxxxxxxxxxxx>

Seems to be a false positive but as this message only happens when user
client connects, we can copy this array to make compiling warn free.

 > src/vdagent/vdagent.c: In function ‘daemon_read_complete’:
 > src/vdagent/vdagent.c:226:71: error: taking address of packed member of
 >     ‘struct VDAgentAudioVolumeSync’ may result in an unaligned pointer
 >     value [-Werror=address-of-packed-member]
 >   226 |             vdagent_audio_playback_sync(avs->mute, avs->nchannels, avs->volume);
 >       |                                                                    ~~~^~~~~~~~
 > src/vdagent/vdagent.c:228:69: error: taking address of packed member of
 >     ‘struct VDAgentAudioVolumeSync’ may result in an unaligned pointer
 >     value [-Werror=address-of-packed-member]
 >   228 |             vdagent_audio_record_sync(avs->mute, avs->nchannels, avs->volume);
 >       |                                                                  ~~~^~~~~~~~

Signed-off-by: Victor Toso <victortoso@xxxxxxxxxx>
---
 src/vdagent/vdagent.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/src/vdagent/vdagent.c b/src/vdagent/vdagent.c
index d799d1f..0e2e73e 100644
--- a/src/vdagent/vdagent.c
+++ b/src/vdagent/vdagent.c
@@ -222,11 +222,14 @@ static void daemon_read_complete(struct udscs_connection **connp,
         break;
     case VDAGENTD_AUDIO_VOLUME_SYNC: {
         VDAgentAudioVolumeSync *avs = (VDAgentAudioVolumeSync *)data;
+        uint16_t *volume = g_memdup(avs->volume, sizeof(uint16_t) * avs->nchannels);
+
         if (avs->is_playback) {
-            vdagent_audio_playback_sync(avs->mute, avs->nchannels, avs->volume);
+            vdagent_audio_playback_sync(avs->mute, avs->nchannels, volume);
         } else {
-            vdagent_audio_record_sync(avs->mute, avs->nchannels, avs->volume);
+            vdagent_audio_record_sync(avs->mute, avs->nchannels, volume);
         }
+        g_free(volume);
         break;
     }
     case VDAGENTD_FILE_XFER_DATA:
-- 
2.21.0

_______________________________________________
Spice-devel mailing list
Spice-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/spice-devel




[Index of Archives]     [Linux Virtualization]     [Linux Virtualization]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]     [Monitors]