From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id 9FDED4B5AA for ; Sat, 8 Jun 2024 23:12:00 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id D8D3768D759; Sun, 9 Jun 2024 02:11:03 +0300 (EEST) Received: from relay6-d.mail.gandi.net (relay6-d.mail.gandi.net [217.70.183.198]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 9A3A668D736 for ; Sun, 9 Jun 2024 02:10:54 +0300 (EEST) Received: by mail.gandi.net (Postfix) with ESMTPSA id 07818C0002 for ; Sat, 8 Jun 2024 23:10:53 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=niedermayer.cc; s=gm1; t=1717888254; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=7d/pa86zWj8Vok8pTpylGijE87xmWBUm/KzaazdEhn4=; b=gowzPZMmNguMGeOn9VLik8VWPML1xPHEkqYcRIgBFwcMsKkyvojNP/bk6usGZB9HBdHtLT tvatRxRkdo55kefvrd+Jf0+RE6wSPe6yPtYEVuikzLaJdFh/S6xI/WGqZQPsHfXWdv05Bc 02ewgEW3g75J/K+6UobfbMuWTpE/ffyKkfswIJ1PuFZlBeMWCyK3xq/jZinFyt7Lp/IOLv PZEp3Z40KVwoDxV6EnSVAyVR9I2fhJlWxw2FZphgL74rL566uT2/4gih9mbVxaoSx9/VL6 +Ov43cq/n1DQWu4YJOAE7C3SkM7nkacRYI9eRUmpF5Txph2bIf0jzRIGeasBLQ== From: Michael Niedermayer To: FFmpeg development discussions and patches Date: Sun, 9 Jun 2024 01:10:45 +0200 Message-ID: <20240608231046.3619551-8-michael@niedermayer.cc> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20240608231046.3619551-1-michael@niedermayer.cc> References: <20240608231046.3619551-1-michael@niedermayer.cc> MIME-Version: 1.0 X-GND-Sasl: michael@niedermayer.cc Subject: [FFmpeg-devel] [PATCH 8/9] avformat/udp: Fix temporary buffer race X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: Fixes: CID1551679 Data race condition Fixes: CID1551687 Data race condition Sponsored-by: Sovereign Tech Fund Signed-off-by: Michael Niedermayer --- libavformat/udp.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/libavformat/udp.c b/libavformat/udp.c index c1ebdd12220..fd4847eda71 100644 --- a/libavformat/udp.c +++ b/libavformat/udp.c @@ -107,7 +107,8 @@ typedef struct UDPContext { pthread_cond_t cond; int thread_started; #endif - uint8_t tmp[UDP_MAX_PKT_SIZE+4]; + uint8_t tmp_rx[UDP_MAX_PKT_SIZE+4]; + uint8_t tmp_tx[UDP_MAX_PKT_SIZE+4]; int remaining_in_dg; char *localaddr; int timeout; @@ -504,7 +505,7 @@ static void *circular_buffer_task_rx( void *_URLContext) see "General Information" / "Thread Cancelation Overview" in Single Unix. */ pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, &old_cancelstate); - len = recvfrom(s->udp_fd, s->tmp+4, sizeof(s->tmp)-4, 0, (struct sockaddr *)&addr, &addr_len); + len = recvfrom(s->udp_fd, s->tmp_rx+4, sizeof(s->tmp_rx)-4, 0, (struct sockaddr *)&addr, &addr_len); pthread_setcancelstate(PTHREAD_CANCEL_DISABLE, &old_cancelstate); pthread_mutex_lock(&s->mutex); if (len < 0) { @@ -516,7 +517,7 @@ static void *circular_buffer_task_rx( void *_URLContext) } if (ff_ip_check_source_lists(&addr, &s->filters)) continue; - AV_WL32(s->tmp, len); + AV_WL32(s->tmp_rx, len); if (av_fifo_can_write(s->fifo) < len + 4) { /* No Space left */ @@ -532,7 +533,7 @@ static void *circular_buffer_task_rx( void *_URLContext) goto end; } } - av_fifo_write(s->fifo, s->tmp, len + 4); + av_fifo_write(s->fifo, s->tmp_rx, len + 4); pthread_cond_signal(&s->cond); } @@ -581,9 +582,9 @@ static void *circular_buffer_task_tx( void *_URLContext) len = AV_RL32(tmp); av_assert0(len >= 0); - av_assert0(len <= sizeof(s->tmp)); + av_assert0(len <= sizeof(s->tmp_tx)); - av_fifo_read(s->fifo, s->tmp, len); + av_fifo_read(s->fifo, s->tmp_tx, len); pthread_mutex_unlock(&s->mutex); @@ -607,7 +608,7 @@ static void *circular_buffer_task_tx( void *_URLContext) target_timestamp = start_timestamp + sent_bits * 1000000 / s->bitrate; } - p = s->tmp; + p = s->tmp_tx; while (len) { int ret; av_assert0(len > 0); -- 2.45.2 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".