From 4b981ddb508f49dcf2cbbb4b64df012e665fea70 Mon Sep 17 00:00:00 2001 From: Martin Pulec Date: Fri, 1 Dec 2023 15:04:27 +0100 Subject: [PATCH] swmix: Coverity fixes - suppressed CID 424203 - move old audio data free outside the lock (to indicate that network_audio_buffer is not needed to be guarded by the lock) - suppressed CID 424228 - assign video frame data from network buffer in the locked section - similarly as for the above, it is actually not guarded by the lock but this is just done to suppress the warning (and is also shorter to assign on single line) --- src/video_capture/swmix.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/src/video_capture/swmix.c b/src/video_capture/swmix.c index ac71d9f7a..6cff1da0d 100644 --- a/src/video_capture/swmix.c +++ b/src/video_capture/swmix.c @@ -1309,6 +1309,10 @@ vidcap_swmix_grab(void *state, struct audio_frame **audio) struct vidcap_swmix_state *s = (struct vidcap_swmix_state *) state; *audio = NULL; + if (s->network_audio_buffer) { + free(s->network_audio_buffer); + s->network_audio_buffer = NULL; + } pthread_mutex_lock(&s->lock); while(s->completed_buffer == NULL) { @@ -1318,11 +1322,7 @@ vidcap_swmix_grab(void *state, struct audio_frame **audio) simple_linked_list_append(s->free_buffer_queue, s->network_buffer); pthread_cond_signal(&s->free_buffer_queue_not_empty_cv); } - if(s->network_audio_buffer) { - free(s->network_audio_buffer); - s->network_audio_buffer = NULL; - } - s->network_buffer = s->completed_buffer; + s->frame->tiles[0].data = s->network_buffer = s->completed_buffer; s->completed_buffer = NULL; s->network_audio_buffer = s->completed_audio_buffer; s->completed_audio_buffer = NULL; @@ -1330,8 +1330,6 @@ vidcap_swmix_grab(void *state, struct audio_frame **audio) pthread_cond_signal(&s->frame_sent_cv); pthread_mutex_unlock(&s->lock); - s->frame->tiles[0].data = s->network_buffer; - s->frames++; gettimeofday(&s->t, NULL); double seconds = tv_diff(s->t, s->t0);