From patchwork Sun Jan 23 03:51:56 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lance Wang X-Patchwork-Id: 33749 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp1708781iog; Sat, 22 Jan 2022 19:52:25 -0800 (PST) X-Google-Smtp-Source: ABdhPJysnbUVKOV60FGwsH6yfrjXCVdO0QPAgWV/BD+uMp6ZsGKJatzhxmdRtu5QFvaCBhAJgLNY X-Received: by 2002:a17:906:a103:: with SMTP id t3mr8219913ejy.567.1642909945645; Sat, 22 Jan 2022 19:52:25 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642909945; cv=none; d=google.com; s=arc-20160816; b=QcM7fl/mGUUpumGMnl44P/Xht93ofJTvcrDtXQ8egmeyPlOjHIZKq9x1OJsemqsgDc HoeGHO7YJgLeSh5XlcYC+K12S7DIImJIgwiPuz5Dba3pF7r2FYcOfbrqoQWl7OzmdqmY 4+mVGriO3PYk+azqE8i1CyPGNoMTcN7ij2GPjaCXKy4c91acHD9hy6filT7b1gL7/5nj xB296WnonGL1ylJptj+5ao0YRlTNBfhsM8IhFl+krje2MPW8Vgs8JzEVCEjvSKbJcoL7 7bM7eOcgOIFpcuFOaNil6dSOh6FNGxAMUz72YCWLyFvq06EJQ7a+e3GtDvuhjN7VFp3/ Dr1w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:mime-version:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:message-id:date:to:from:dkim-signature :delivered-to; bh=0oKOl9qT/R8NJfK9blMD60B0KxQcnNEont4Cy415nUw=; b=FRpSFFY1YNcW5g4uk/QHVcEICApCE2NQsEiyF6I15rBqCcqPREwPkLcQos91h+iozc 2olDAHx3nNuYiKIeN73whxaOTdzH73ceOVUzO+vQxvD+s82gVFEp1rz6a/Ag8h0J88uA eSyHYgc0jNg8/SpQoDi3Yozc7PRz1YbtEURM590DgttCDtP2BvMMZk6kiuxIsk9MgjGL mO74MWiFOwXW9g9xgKEgXwghQaD+EnORHqZ/ltQk8GF6ZxOBTnDtNw1U0jE166gCH/OW 0etRLmMfBGzQOYfiUiFxp9WQ+IQdwgeTdsGXFWbWSUFROcqE0keUH5Jh6WW1EfTYnNGI 5kdw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=XC4nK3nT; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id t19si6236214edi.514.2022.01.22.19.52.24; Sat, 22 Jan 2022 19:52:25 -0800 (PST) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=XC4nK3nT; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 8CCA568AFEF; Sun, 23 Jan 2022 05:52:20 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-pj1-f45.google.com (mail-pj1-f45.google.com [209.85.216.45]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id F3D6768AFAB for ; Sun, 23 Jan 2022 05:52:14 +0200 (EET) Received: by mail-pj1-f45.google.com with SMTP id d15-20020a17090a110f00b001b4e7d27474so12978230pja.2 for ; Sat, 22 Jan 2022 19:52:14 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id; bh=s2DXGtxeoqqoX1q2jeDKzKd+lAL+bvAx5S6HHnBbjuU=; b=XC4nK3nTZW3xwaK5XLL5pw9vddKuKExMqbG14r0fVme5Kt3ApXId5nbNNnL6ptQCso MQOuJ6ljBjldJWoo9xn+2ZkYaRPPngt6PYgk3iRh1J5u2NMrnBGEMwQ4Ras/kQ37idEE VUGKXoOh6l9JmkQMzUeJzgc6slQIZlKWiKXa60dOQR05m1XxbwMIxgBfmDtS7Ayef5MY e5uSVZqgPLVcaHuCf97zNji4ZOcbi5O1z8A/Js1JL0TeEtP1FGmseu1B8ouLLzYTTKPn P5dxv35YyMQs6vN8nHXCD4Xulwh6+iu7cikuEBU8ReP25UDjyINSYXmx0plCocaDf7p8 FElg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=s2DXGtxeoqqoX1q2jeDKzKd+lAL+bvAx5S6HHnBbjuU=; b=PHEHLo7fSVztPJ+qIQuHWw7Vr4XdZ59eYn9wMwo8y05YdrleXMRG0Zl3Wv3xe3bNvh MGwXmakdVGtiYWawF7vv7FiAeDt9udook9d8tzbOZCemA1JM4jNW3nrOH1EXeS+oJXw3 J6F33niKH2NHnjcZHwcG6slaTJo/MBC3nCQtOu3FS73jDhQ+MDDDUaYFvlM/6d/uWjTD QEy4MJKf+kBMXqhgtxiaqdph9BXlE/AZe5lcapFJRjnxdhML/F5d2ieqofrn9x/OfLzS dqdP5NPtbnT6rvOYyVgmqL1JseydlHWKXWdvJYp1TNpY6znQd7jv3+Sno5DETXd6puXt /EPw== X-Gm-Message-State: AOAM530Duiui1nxnM2Nv6n6KfEVoxiMnA8/kYQ7dqf0dKJHzoD7Rv2Z1 prHoE/4qiaydfJI79wmGUMyo6f1muio= X-Received: by 2002:a17:90a:43:: with SMTP id 3mr7562944pjb.244.1642909932480; Sat, 22 Jan 2022 19:52:12 -0800 (PST) Received: from vpn2.localdomain ([161.117.202.209]) by smtp.gmail.com with ESMTPSA id f13sm12015747pfc.70.2022.01.22.19.52.11 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sat, 22 Jan 2022 19:52:12 -0800 (PST) From: lance.lmwang@gmail.com To: ffmpeg-devel@ffmpeg.org Date: Sun, 23 Jan 2022 11:51:56 +0800 Message-Id: <1642909918-26903-1-git-send-email-lance.lmwang@gmail.com> X-Mailer: git-send-email 1.8.3.1 Subject: [FFmpeg-devel] [PATCH 1/3] avformat/rtpdec: Fix negative missed packets in warning message 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 Cc: Limin Wang MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: 0XTh8jU28ODy From: Limin Wang Signed-off-by: Limin Wang --- libavformat/rtpdec.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/libavformat/rtpdec.c b/libavformat/rtpdec.c index 20fe2b8..f285a41 100644 --- a/libavformat/rtpdec.c +++ b/libavformat/rtpdec.c @@ -835,9 +835,14 @@ static int rtp_parse_queued_packet(RTPDemuxContext *s, AVPacket *pkt) if (s->queue_len <= 0) return -1; - if (!has_next_packet(s)) + if (!has_next_packet(s)) { + int pkt_missed = s->queue->seq - s->seq - 1; + + if (pkt_missed < 0) + pkt_missed += UINT16_MAX; av_log(s->ic, AV_LOG_WARNING, - "RTP: missed %d packets\n", s->queue->seq - s->seq - 1); + "RTP: missed %d packets\n", pkt_missed); + } /* Parse the first packet in the queue, and dequeue it */ rv = rtp_parse_packet_internal(s, pkt, s->queue->buf, s->queue->len); From patchwork Sun Jan 23 03:51:57 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lance Wang X-Patchwork-Id: 33750 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp1708821iog; Sat, 22 Jan 2022 19:52:35 -0800 (PST) X-Google-Smtp-Source: ABdhPJyNfnr2TsfaH8D3oVst2KNn2h0fixu+CyPCgQsHUcylacLjZgiN3Xv/HpAm2DDEAD44OZtM X-Received: by 2002:a17:906:53d5:: with SMTP id p21mr7920489ejo.315.1642909955783; Sat, 22 Jan 2022 19:52:35 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642909955; cv=none; d=google.com; s=arc-20160816; b=QlMkNM3CUK48v4Lb/8JJS2mryQZQ/SopOlr9RPznYjmI504jF9GwBrZg2ogHbKvpf8 uJd96Y55l+Gm6oEk3xKKIf0mG30pHP6gpCoxJGzB8BmGakf+4+Pj3vBiFVukZnPTG5ED hHreTPDUDN+fALdt97iOP01T4awbuOIrETScnobUoDL1LZgCjsyXqiZZPAD2F8XptLkm mrxHHvhjnAPUpxwA7PksaeuczY7GNyI0A1CG+IF1FeG2TCWLKUfB6emAgLHPdFl5k8OZ MFxc3AiwvCkGA1YumIfBk8ITFgoDt/VEahvfd7C7SD5Hds22Bl3S0KKwxhQtlTp96EyE Oy3w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:mime-version:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:references:in-reply-to:message-id:date :to:from:dkim-signature:delivered-to; bh=iH87MoP/w88GXA8VvWsABANCc8/IwTmzfrVwiybCnNM=; b=mQdgaUrYc/8PEhaZUMh7B7SmMmoixgtUOkUYWqGRUHcbrjx41+J6SoYPYPNifXfSle dcHtr8FAeCrdeNqVPsD/xcuxqCPsSslAHkiMNAWGTfrdueAnus+N4COkUnBAFx9ZSlye RzOi4ZfaQM5R47Nexvc4HwMwmMY/jvBAi+pJvpgQgnwld5zE6MQSofWEkFZ5FCNdyQm3 cxbeXbAoqsxDZBH7fiVbTZnUZCnrBIQuBGvbDoa7NYPWd8EfKZnOXa3sZknGQFo5XvUm oO5SVhSVz0X/2Qhw4amprNC6AkB+HpsFCJmfhpIAgVyo+6iKiSk+cTI+DD2cBfNyH1D3 8vDQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=aRkqJmIy; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id w2si7171815edd.3.2022.01.22.19.52.35; Sat, 22 Jan 2022 19:52:35 -0800 (PST) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=aRkqJmIy; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 9FB1D68AFFA; Sun, 23 Jan 2022 05:52:23 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-pl1-f178.google.com (mail-pl1-f178.google.com [209.85.214.178]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id C78AB68AFF1 for ; Sun, 23 Jan 2022 05:52:15 +0200 (EET) Received: by mail-pl1-f178.google.com with SMTP id c3so12393815pls.5 for ; Sat, 22 Jan 2022 19:52:15 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=qFaxsloWUUbPnarmNEeto4o/FJFhahnMXWL5MQIrpHU=; b=aRkqJmIyVR9oVNhtMPnEwX9XEqhP4hlbPZBZx9/MVfRuICZmViQnMrp24zijzf3P+N gNoaPfjFkW019iMoVBeJdX5DXzyaEBwJP+Z/EYzeOdIew5dLqHLxCD/9zdwZTOqO40W7 DI92tWC8n5gHR/eDuuqz2GnhQ6MUf/9ccy+SwccMhCYXVlHP0BXwz2lJS6mezf1QqAMH h6e6dQ4QvzDD42elKAHSL+o4JBH1MJst3A46FUZvDOGv0RWFVLi69VQJQN4zCU0wsOLV VMikH6jxG4jjugkn67IMq3MXlt31PS/LRGBopQD6vqN3VU987j4JMA1TZq/jeT2gLxO/ 7cEw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=qFaxsloWUUbPnarmNEeto4o/FJFhahnMXWL5MQIrpHU=; b=hXqOXaT4F6LmiU1Mb1h6xCCXpLhBVKHgNX6R9FxS2foUw2qTMamVgputdc5K6p4344 I8OM+9bXC9xrhI8n3a9fzjn8B/EvrVQEnPHhpiYmtbuCoJFrndwW6wKP2O7fReUeT/MR CwM+JGhbSLS+m2k0ey+dTFXqoqo8vVCjbHTs06VuYwBBwKEi8Z24BUzKapGmlAHVflou X2LbQbDa8vEZeyWM3VTsKq8PXudyNjPDDiC//RgsYbPmPqj1R0/llehWiTXGhFST+bmc OigENya0ALYmhj0WJ1CKx512ngoZ1ojrMuKLYjtRg2jxLo40PWSo3FF/u9Pal9SyV92k /J6w== X-Gm-Message-State: AOAM530gJERvjeN53YbwTyz6oy/qowtkFwaxsxFRybk6oVtpfRtsB0Fz x3cHnnzk7DprCMz5uBKTsU40Irb7Kh8= X-Received: by 2002:a17:90a:7e81:: with SMTP id j1mr7450169pjl.14.1642909933743; Sat, 22 Jan 2022 19:52:13 -0800 (PST) Received: from vpn2.localdomain ([161.117.202.209]) by smtp.gmail.com with ESMTPSA id f13sm12015747pfc.70.2022.01.22.19.52.12 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sat, 22 Jan 2022 19:52:13 -0800 (PST) From: lance.lmwang@gmail.com To: ffmpeg-devel@ffmpeg.org Date: Sun, 23 Jan 2022 11:51:57 +0800 Message-Id: <1642909918-26903-2-git-send-email-lance.lmwang@gmail.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1642909918-26903-1-git-send-email-lance.lmwang@gmail.com> References: <1642909918-26903-1-git-send-email-lance.lmwang@gmail.com> Subject: [FFmpeg-devel] [PATCH 2/3] avformat/rtpdec: return value check for init_get_bits() 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 Cc: Limin Wang MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: gkVGYBNyd03L From: Limin Wang Signed-off-by: Limin Wang --- libavformat/rtpdec_h261.c | 4 +++- libavformat/rtpdec_h263_rfc2190.c | 4 +++- libavformat/rtpdec_latm.c | 4 +++- libavformat/rtpdec_mpeg4.c | 5 ++++- libavformat/rtpdec_qt.c | 4 +++- 5 files changed, 16 insertions(+), 5 deletions(-) diff --git a/libavformat/rtpdec_h261.c b/libavformat/rtpdec_h261.c index a102909..57bc10f 100644 --- a/libavformat/rtpdec_h261.c +++ b/libavformat/rtpdec_h261.c @@ -119,7 +119,9 @@ static int h261_handle_packet(AVFormatContext *ctx, PayloadContext *rtp_h261_ctx } else { /* ebit/sbit values inconsistent, assuming packet loss */ GetBitContext gb; - init_get_bits(&gb, buf, len*8 - ebit); + res = init_get_bits(&gb, buf, len*8 - ebit); + if (res < 0) + return res; skip_bits(&gb, sbit); if (rtp_h261_ctx->endbyte_bits) { rtp_h261_ctx->endbyte |= get_bits(&gb, 8 - rtp_h261_ctx->endbyte_bits); diff --git a/libavformat/rtpdec_h263_rfc2190.c b/libavformat/rtpdec_h263_rfc2190.c index a0f587f..47aaec0 100644 --- a/libavformat/rtpdec_h263_rfc2190.c +++ b/libavformat/rtpdec_h263_rfc2190.c @@ -142,7 +142,9 @@ static int h263_handle_packet(AVFormatContext *ctx, PayloadContext *data, } else { /* Start/end skip bits not matching - missed packets? */ GetBitContext gb; - init_get_bits(&gb, buf, len*8 - ebit); + ret = init_get_bits(&gb, buf, len*8 - ebit); + if (ret < 0) + return ret; skip_bits(&gb, sbit); if (data->endbyte_bits) { data->endbyte |= get_bits(&gb, 8 - data->endbyte_bits); diff --git a/libavformat/rtpdec_latm.c b/libavformat/rtpdec_latm.c index 104a00a..329b8db 100644 --- a/libavformat/rtpdec_latm.c +++ b/libavformat/rtpdec_latm.c @@ -101,7 +101,9 @@ static int parse_fmtp_config(AVStream *st, const char *value) if (!config) return AVERROR(ENOMEM); ff_hex_to_data(config, value); - init_get_bits(&gb, config, len*8); + ret = init_get_bits(&gb, config, len*8); + if (ret < 0) + return ret; audio_mux_version = get_bits(&gb, 1); same_time_framing = get_bits(&gb, 1); skip_bits(&gb, 6); /* num_sub_frames */ diff --git a/libavformat/rtpdec_mpeg4.c b/libavformat/rtpdec_mpeg4.c index 34c7950..723b6fc 100644 --- a/libavformat/rtpdec_mpeg4.c +++ b/libavformat/rtpdec_mpeg4.c @@ -124,6 +124,7 @@ static int rtp_parse_mp4_au(PayloadContext *data, const uint8_t *buf, int len) { int au_headers_length, au_header_size, i; GetBitContext getbitcontext; + int ret; if (len < 2) return AVERROR_INVALIDDATA; @@ -144,7 +145,9 @@ static int rtp_parse_mp4_au(PayloadContext *data, const uint8_t *buf, int len) if (len < data->au_headers_length_bytes) return AVERROR_INVALIDDATA; - init_get_bits(&getbitcontext, buf, data->au_headers_length_bytes * 8); + ret = init_get_bits(&getbitcontext, buf, data->au_headers_length_bytes * 8); + if (ret < 0) + return ret; /* XXX: Wrong if optional additional sections are present (cts, dts etc...) */ au_header_size = data->sizelength + data->indexlength; diff --git a/libavformat/rtpdec_qt.c b/libavformat/rtpdec_qt.c index 6723cd1..495a3ec 100644 --- a/libavformat/rtpdec_qt.c +++ b/libavformat/rtpdec_qt.c @@ -82,7 +82,9 @@ static int qt_rtp_parse_packet(AVFormatContext *s, PayloadContext *qt, * The RTP payload is described in: * http://developer.apple.com/quicktime/icefloe/dispatch026.html */ - init_get_bits(&gb, buf, len << 3); + ret = init_get_bits(&gb, buf, len << 3); + if (ret < 0) + return ret; ffio_init_context(&pb0, (uint8_t*)buf, len, 0, NULL, NULL, NULL, NULL); if (len < 4) From patchwork Sun Jan 23 03:51:58 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lance Wang X-Patchwork-Id: 33751 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp1708860iog; Sat, 22 Jan 2022 19:52:44 -0800 (PST) X-Google-Smtp-Source: ABdhPJztjypf0UiJH87toeNEqaFbVNIOtVGykvy+mM3wwR6dy2vT4Uvba+n/9ib15pTNuklmDwod X-Received: by 2002:a17:907:6298:: with SMTP id nd24mr8526883ejc.224.1642909964142; Sat, 22 Jan 2022 19:52:44 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642909964; cv=none; d=google.com; s=arc-20160816; b=Aq+tPe/E+egFGAobhJlcQIlKVw7FyhOjvNkiS7NCfFBjHGO0rtpJj6IvMGX19lhtOD CljdOGjyuVsjZNGf+VcgP4Sw74gR4CAyJm+scFh3AJFCmCCsOykPoIwk5PFdrSPj5D3v WamhMwURJmW82SQrZ/ytoO12zUvs4VOIPYNQ2QsHQQT/0XPX7VXsSZnfcOLPuHwFDMVS xqk8gPmF20bO0EFO5kugBgn5cSAPsOY4n0v9mdKKhspeB7CQLWg7PUWvhXPpthFroRwc hhGtjswnGR3nkU5OQ1NJBa9Ls0r+fcTZs5aNyG5BCCOBx5nqk12/KtgNhGSKt6hyPnYb iI/A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:mime-version:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:references:in-reply-to:message-id:date :to:from:dkim-signature:delivered-to; bh=FCYumaYyGqBZNqDdMgtyX0OOkrZFZdIz1b9wV/Wa5xk=; b=qM3B45V4I+0bhA5dv1P5/Z2OHfK6z8/NJT6PIaXRHHuy7w3AFKkSuPifeXjDnoONCa FRXf8abcq9qEZkf7VfSPI8sCULvhxMumZaFuQtTkQSuiFKeMk/WwRbsfUr22Ptqce3qD whfJL0KfAaaDZxxoY16rQWLUEcTIzvUF3khAK5Wq4jAvSba/6erKsVAJb7QZL0+7Yyzq mS5esJ0gXD+cd9l6aT3prlrREBYfmgWXeSfB2mSOJS/4FrkEMXtO34nS505JHnz96HSc BFZ78OBvWOEr/yGebJUDOM06m5cqD0/elMc34uINC6xFkC8zGRvSgWKnVlMyUGgoUta9 RS0w== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=l8bvqefo; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id e2si5920172ejm.387.2022.01.22.19.52.43; Sat, 22 Jan 2022 19:52:44 -0800 (PST) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=l8bvqefo; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 72AA368AEC5; Sun, 23 Jan 2022 05:52:24 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-pl1-f173.google.com (mail-pl1-f173.google.com [209.85.214.173]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id A50A068AFB4 for ; Sun, 23 Jan 2022 05:52:16 +0200 (EET) Received: by mail-pl1-f173.google.com with SMTP id c3so12393834pls.5 for ; Sat, 22 Jan 2022 19:52:16 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=4lLfiQUyloMKmE3g4j+9BUDFmshtjkDQA1amULzkfaw=; b=l8bvqefoCnbHFTBbq6VoROmgUfhls/wd0PsvOB3UjR8s3TJhxa/0bfn7IGuQ0P+v24 SbTuYke83szqMHjpq+P/y0Llu72GLG22jQ0o2ErGPl/+X2TgWaeB6N8YpOTUk0KYI473 bkoPsFuOR5g56WKzM36QiTqDx6XmSWD7orq9odeIb7LotrWvYYe8wqmOruveZli7UKE5 GGhUMXxEFXpfTzcYTvqBOkK3p1c2+3DRmUIoN6AnXIOjcafJknezvmUtWQ0nZgSxUwuA YRf8K0rL78MopDKeNhuuez9Ufcuf/LmauA1+LDumfh1NHCIWseN87cfzZ+sX038LClmW EwhA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=4lLfiQUyloMKmE3g4j+9BUDFmshtjkDQA1amULzkfaw=; b=0seu+Hk7p3hDoaeJw/dwPD6dy8lmFOwljmbTlDJ6pwOH6rN5lZpBXrXjeh8pcInxIp uc5ihL9/Zy4s6O43eO4UGZg8fHhI+oBPuLKoffujXy8e6Z7/FZeQ+WYqqOrjBdKJXu6m d0CWBtvGYTF0812xgpr+6To34OZ9Exv6a+aPnO99q9GK9b4kvS/zau1kmCKNEtC1kCI7 GrUPjx7L6BljyrIBTD5TcdHyCV+3zY7n7Yc8Ti6e8Mxu/Hvb7lITsUB/PVYclJU1S7K0 IdTJMBScy8twb3MJOEB+O3zmhogvj7jyYeYbt0OK3Nm3MqgNZVTU1WvVEkwG7TFPzZmp XKZw== X-Gm-Message-State: AOAM530icuVzDNoSh/jqok0/8stbHCj2JOqHZcgLrDTKWSzjU9nBPGXj kklE2t4JwKyHN9xbnfEDTG3Zucu+5ZQ= X-Received: by 2002:a17:902:6502:b0:149:1162:f0b5 with SMTP id b2-20020a170902650200b001491162f0b5mr9703505plk.126.1642909934960; Sat, 22 Jan 2022 19:52:14 -0800 (PST) Received: from vpn2.localdomain ([161.117.202.209]) by smtp.gmail.com with ESMTPSA id f13sm12015747pfc.70.2022.01.22.19.52.13 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sat, 22 Jan 2022 19:52:14 -0800 (PST) From: lance.lmwang@gmail.com To: ffmpeg-devel@ffmpeg.org Date: Sun, 23 Jan 2022 11:51:58 +0800 Message-Id: <1642909918-26903-3-git-send-email-lance.lmwang@gmail.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1642909918-26903-1-git-send-email-lance.lmwang@gmail.com> References: <1642909918-26903-1-git-send-email-lance.lmwang@gmail.com> Subject: [FFmpeg-devel] [PATCH 3/3] avformat/dashdec: avoid calling strlen multiple times 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 Cc: Limin Wang MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: jTudNc2VrRfm From: Limin Wang Signed-off-by: Limin Wang --- libavformat/dashdec.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/libavformat/dashdec.c b/libavformat/dashdec.c index 0d21989..211d77f 100644 --- a/libavformat/dashdec.c +++ b/libavformat/dashdec.c @@ -403,6 +403,7 @@ static int open_url(AVFormatContext *s, AVIOContext **pb, const char *url, DASHContext *c = s->priv_data; AVDictionary *tmp = NULL; const char *proto_name = NULL; + int proto_name_len; int ret; if (av_strstart(url, "crypto", NULL)) { @@ -416,6 +417,7 @@ static int open_url(AVFormatContext *s, AVIOContext **pb, const char *url, if (!proto_name) return AVERROR_INVALIDDATA; + proto_name_len = strlen(proto_name); // only http(s) & file are allowed if (av_strstart(proto_name, "file", NULL)) { if (strcmp(c->allowed_extensions, "ALL") && !av_match_ext(url, c->allowed_extensions)) { @@ -430,9 +432,9 @@ static int open_url(AVFormatContext *s, AVIOContext **pb, const char *url, } else return AVERROR_INVALIDDATA; - if (!strncmp(proto_name, url, strlen(proto_name)) && url[strlen(proto_name)] == ':') + if (!strncmp(proto_name, url, proto_name_len) && url[proto_name_len] == ':') ; - else if (av_strstart(url, "crypto", NULL) && !strncmp(proto_name, url + 7, strlen(proto_name)) && url[7 + strlen(proto_name)] == ':') + else if (av_strstart(url, "crypto", NULL) && !strncmp(proto_name, url + 7, proto_name_len) && url[7 + proto_name_len] == ':') ; else if (strcmp(proto_name, "file") || !strncmp(url, "file,", 5)) return AVERROR_INVALIDDATA;