diff options
author | Victor Toso <me@victortoso.com> | 2019-07-12 11:12:42 +0200 |
---|---|---|
committer | Frediano Ziglio <fziglio@redhat.com> | 2019-07-19 12:13:42 +0100 |
commit | 6bfbd03e83fc8fcf783d4431607d7d6129af58b0 (patch) | |
tree | 889fd1914df93cce962924f68ca049cb21aafff1 /src | |
parent | 7976dc31af511315fa7b83cfbb1e3bf4b613f84b (diff) |
vdagent: simple fix for address-of-packed-member
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@redhat.com>
Acked-by: Frediano Ziglio <fziglio@redhat.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/vdagent/vdagent.c | 7 |
1 files 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: |