From patchwork Fri May 7 01:23:03 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lance Wang X-Patchwork-Id: 27629 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:b214:0:0:0:0:0 with SMTP id b20csp115850iof; Thu, 6 May 2021 18:23:34 -0700 (PDT) X-Google-Smtp-Source: ABdhPJz10zFnDEsOQUb9VvLftFg8CjPLq/8IUMzn9lGNN8LvLns0jKS0bkp0E0X90mvpuH/g9NxT X-Received: by 2002:aa7:c382:: with SMTP id k2mr8626736edq.189.1620350613938; Thu, 06 May 2021 18:23:33 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1620350613; cv=none; d=google.com; s=arc-20160816; b=MNgECM49cNDXGuvgwJxW4Ad+7Ox0YOaobSU2+ifEIPB/ViyRKxlrWZHjXiHdO/flba BsM16qwSkkpFHIYgA08eHSi1Nu/r2FxfKErj4S2fTi6BT8gPzaRay24XcHEX08aSzhMd ZhK5qFHKN4koF5LztK3A7+nLxzRSwEQlGVsvp3it3zA3RI5yna7GGM0AssfWOFnbjEtf Q5AbTLImz+mi4s6+tKhrVYbHiwdLO1l51OzHsJ9mQX04axZo2h4jMjHd49+TgYyWJbS8 XhPWhsy5LIMhO3KJLvw3aRqBKT8/DhXiphNham8G0yaik28uaEVa6RCrb/LggDoSGskW U4hQ== 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=auDHXV+/cfq/DvUxqGzLuIXpaZ63y+Iij/UAO5RPN/w=; b=Dx37N6mDPB8KshTQriovD1FI8aqY8QH/Kai8i6KOfdmXKyjzn4lN/lnqpUaHAno0Xe omj/glJg0fWXZaGRnekUkdTYe5P2KkDBuqtuOldjs5UgCRnZvveESf5QpDhoDqfa1nRX syXphbKg5pwZ6PmtqBjF/AmnXNXVToHrYNXvPLAigljlGCDqyadM6QjXRQZ/lm1yQCBX jQ2uH61ni26i4zzwnXiDCsIUhVFbfU76xHjQyCZvH3zdBLviIcirbRUlVa1vBoSaptaI 0/Umk6rE5Ng7eCCTtKz8OUJUcjNN0dMzHLKR2o3atdZJBMRTN5Y0ki7plqsg3lYjk0Id NJgw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20161025 header.b=Uj2cGmwI; 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 t4si3970495edd.446.2021.05.06.18.23.23; Thu, 06 May 2021 18:23:33 -0700 (PDT) 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=20161025 header.b=Uj2cGmwI; 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 54BD16806C7; Fri, 7 May 2021 04:23:19 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-pf1-f173.google.com (mail-pf1-f173.google.com [209.85.210.173]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 8AB51680301 for ; Fri, 7 May 2021 04:23:12 +0300 (EEST) Received: by mail-pf1-f173.google.com with SMTP id k19so6490628pfu.5 for ; Thu, 06 May 2021 18:23:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id; bh=nfzwkY+2X4zzO9Aq6nsVlR7N2DlexJtz7pz+KLwovJY=; b=Uj2cGmwI68ZHL3dSaATobUisZyJcL2WceDy4bNpjLS4m62D9Exhrv4lIjN+wKCE/2R qmsWIaR2aqwkUwnEb+rGXQvReDr+pOTv5e3wSjtmB3X61ia7buZyEpoczE5a5o1jnpM8 RG3X4ELmsYHh65s9ITklsbhGps+eWdm8Rjvh9Ao6IaudzFw86tkZvH9mMDNyeZIPaKxQ 6zfRheKdnPzuSMkoNn8tTUAyJhW60aEnPvF5oZdnHZyDt2SoHOi8IFWCeMgqkn7I2aXj Q00f9np3JQOkB4nJNd+92Uud++jZmxN9YDpwvUf8Cgn9OoCTlUfRD7I1LRg8deDxGCtn tpoQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=nfzwkY+2X4zzO9Aq6nsVlR7N2DlexJtz7pz+KLwovJY=; b=ZTIbOCNa8t06a21uqhpJ5/Q5W7tkrJG/mUfst7Ks9WSqRSiy3SqJ1pcjRugWmVnOVW c9d54CR91IDA2uGdY89stYIMyu8niEvHakriWPTldRdgrZtb9B8cWRB8YP4gHu71Ev/7 KsopEA2BHSWbHraNyuL0VDdl62vAtFDrmsXlCMIU9PfTNBPJvwvg1f840vW3ZBGQNBez RdDGQQJZ6iOc7D1MoFqLmV4CY2uk6lxA4vDFM+6bmKXLOJl0SaFSfNk4IUtguFp1sune vez1tGTOsC9XoQBI216gGnBQPBT1AISOShw7tkOxmbJ2qqknNJtTbW0fuJV0j0njCfFU nFvA== X-Gm-Message-State: AOAM532yZY70Q9fjuFdO3UUmXyd0sOjscSSrOZKbJ25OTd4XLSQIi61c jctL/EzQS1yAO2lSO/2hosnlCuQMF2I= X-Received: by 2002:a62:b419:0:b029:28e:5300:5c57 with SMTP id h25-20020a62b4190000b029028e53005c57mr8012126pfn.30.1620350590239; Thu, 06 May 2021 18:23:10 -0700 (PDT) Received: from vpn2.localdomain ([161.117.202.209]) by smtp.gmail.com with ESMTPSA id h6sm3167429pfb.157.2021.05.06.18.23.08 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 06 May 2021 18:23:09 -0700 (PDT) From: lance.lmwang@gmail.com To: ffmpeg-devel@ffmpeg.org Date: Fri, 7 May 2021 09:23:03 +0800 Message-Id: <1620350584-21215-1-git-send-email-lance.lmwang@gmail.com> X-Mailer: git-send-email 1.8.3.1 Subject: [FFmpeg-devel] [PATCH 1/2] avformat: add data_size for ff_hex_to_data() 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: BMgp7CxBkOuj From: Limin Wang This prevents OOM in case of data buffer size is insufficient. Signed-off-by: Limin Wang --- libavfilter/dnn/dnn_backend_tf.c | 4 ++-- libavformat/hls.c | 2 +- libavformat/internal.h | 6 ++++-- libavformat/rtpdec_latm.c | 4 ++-- libavformat/rtpdec_mpeg4.c | 4 ++-- libavformat/utils.c | 7 +++++-- 6 files changed, 16 insertions(+), 11 deletions(-) diff --git a/libavfilter/dnn/dnn_backend_tf.c b/libavfilter/dnn/dnn_backend_tf.c index 03fe310..4eb5bec 100644 --- a/libavfilter/dnn/dnn_backend_tf.c +++ b/libavfilter/dnn/dnn_backend_tf.c @@ -219,14 +219,14 @@ static DNNReturnType load_tf_model(TFModel *tf_model, const char *model_filename return DNN_ERROR; } config = tf_model->ctx.options.sess_config + 2; - sess_config_length = ff_hex_to_data(NULL, config); + sess_config_length = ff_hex_to_data(NULL, 0, config); sess_config = av_mallocz(sess_config_length + AV_INPUT_BUFFER_PADDING_SIZE); if (!sess_config) { av_log(ctx, AV_LOG_ERROR, "failed to allocate memory\n"); return DNN_ERROR; } - ff_hex_to_data(sess_config, config); + ff_hex_to_data(sess_config, sess_config_length, config); } graph_def = read_graph(model_filename); diff --git a/libavformat/hls.c b/libavformat/hls.c index 584f658..c7f9f06 100644 --- a/libavformat/hls.c +++ b/libavformat/hls.c @@ -800,7 +800,7 @@ static int parse_playlist(HLSContext *c, const char *url, if (!strcmp(info.method, "SAMPLE-AES")) key_type = KEY_SAMPLE_AES; if (!strncmp(info.iv, "0x", 2) || !strncmp(info.iv, "0X", 2)) { - ff_hex_to_data(iv, info.iv + 2); + ff_hex_to_data(iv, sizeof(iv), info.iv + 2); has_iv = 1; } av_strlcpy(key, info.uri, sizeof(key)); diff --git a/libavformat/internal.h b/libavformat/internal.h index 7d0eab4..e0e625f 100644 --- a/libavformat/internal.h +++ b/libavformat/internal.h @@ -397,10 +397,12 @@ char *ff_data_to_hex(char *buf, const uint8_t *src, int size, int lowercase); * digits is ignored. * * @param data if non-null, the parsed data is written to this pointer + * @param data_size the data buffer size * @param p the string to parse - * @return the number of bytes written (or to be written, if data is null) + * @return the number of bytes written (or to be written, if data is null), + * or a negative value in case data buffer size is insufficient. */ -int ff_hex_to_data(uint8_t *data, const char *p); +int ff_hex_to_data(uint8_t *data, int data_size, const char *p); /** * Add packet to an AVFormatContext's packet_buffer list, determining its diff --git a/libavformat/rtpdec_latm.c b/libavformat/rtpdec_latm.c index 104a00a..c348cc8 100644 --- a/libavformat/rtpdec_latm.c +++ b/libavformat/rtpdec_latm.c @@ -91,7 +91,7 @@ static int latm_parse_packet(AVFormatContext *ctx, PayloadContext *data, static int parse_fmtp_config(AVStream *st, const char *value) { - int len = ff_hex_to_data(NULL, value), i, ret = 0; + int len = ff_hex_to_data(NULL, 0, value), i, ret = 0; GetBitContext gb; uint8_t *config; int audio_mux_version, same_time_framing, num_programs, num_layers; @@ -100,7 +100,7 @@ static int parse_fmtp_config(AVStream *st, const char *value) config = av_mallocz(len + AV_INPUT_BUFFER_PADDING_SIZE); if (!config) return AVERROR(ENOMEM); - ff_hex_to_data(config, value); + ff_hex_to_data(config, len, value); init_get_bits(&gb, config, len*8); audio_mux_version = get_bits(&gb, 1); same_time_framing = get_bits(&gb, 1); diff --git a/libavformat/rtpdec_mpeg4.c b/libavformat/rtpdec_mpeg4.c index 34c7950..540192c 100644 --- a/libavformat/rtpdec_mpeg4.c +++ b/libavformat/rtpdec_mpeg4.c @@ -112,11 +112,11 @@ static void close_context(PayloadContext *data) static int parse_fmtp_config(AVCodecParameters *par, const char *value) { /* decode the hexa encoded parameter */ - int len = ff_hex_to_data(NULL, value), ret; + int len = ff_hex_to_data(NULL, 0, value), ret; if ((ret = ff_alloc_extradata(par, len)) < 0) return ret; - ff_hex_to_data(par->extradata, value); + ff_hex_to_data(par->extradata, par->extradata_size, value); return 0; } diff --git a/libavformat/utils.c b/libavformat/utils.c index 6c8b974..7085c28 100644 --- a/libavformat/utils.c +++ b/libavformat/utils.c @@ -4762,7 +4762,7 @@ char *ff_data_to_hex(char *buff, const uint8_t *src, int s, int lowercase) return buff; } -int ff_hex_to_data(uint8_t *data, const char *p) +int ff_hex_to_data(uint8_t *data, int data_size, const char *p) { int c, len, v; @@ -4781,8 +4781,11 @@ int ff_hex_to_data(uint8_t *data, const char *p) break; v = (v << 4) | c; if (v & 0x100) { - if (data) + if (data) { + if (len >= data_size) + return -1; data[len] = v; + } len++; v = 1; } From patchwork Fri May 7 01:23:04 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lance Wang X-Patchwork-Id: 27630 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:b214:0:0:0:0:0 with SMTP id b20csp144464iof; Thu, 6 May 2021 19:22:25 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyQqq35x1IcjRXXG6M1UIaz8olddc7SixfbjE8fMxOEgMKqa2EPkPgt+ilzwcZBgxVbJ1iT X-Received: by 2002:a17:906:32d8:: with SMTP id k24mr7724478ejk.156.1620354145820; Thu, 06 May 2021 19:22:25 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1620354145; cv=none; d=google.com; s=arc-20160816; b=Ls6OPnik+y9RQQ9iexsePxAFsuftAdt36ILNtljZ0s4YM7GbHjTG2A/sJmfzPvMrur M99/qP8NYzLm4Z+E+Rtk7ltVEb49bE2XG5n6qru7MFLBTkjrjkDWoulncQVyVapo1spE B7qV8uidN8PhQuVLUxDqz1L/7feZTOn0wMT6Nf1RaHEp6r9p2UHME2W8pbeQep6PlxIV 7+la0gznBjMlCjRAExwu13qICUSmS+6fxFDTGYd2ceP1Apdyk/+UmDeLEPIvSGan2tKI dzrM2iovTXFApgQBGz63tklygcJA6MREhrAYD+bDA5r3FznTAHwc9oFIidqq5IMcT7vE 5+EQ== 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=dBU3LPkmfayjOF6DelKccOawfyDHfhYjqEiS93qinAo=; b=ylVotKr+QPKZ9bQwtXRKEtR9wnLiXHKNCXuMgtTQqaqea6tubElqdZwnfEYVRlHlFO rOHg276P4wVXZ6cIndqtSZN2gTTZGxbuXX/d7CQ5cwhKvrRIWzJcloFcoAYLuPtaLdoy DmBOF2ZLzeLeY50RuuXEt/CM9vhEVYHetIKEyGFYW7qwc6ZQ17OaPmL8PapWBzW0RaSs K2EFYregesNTu635snynE6nXUewJk0Zvm7wzzMaA3a2q41LLPJINoOeUBLDVlzUU37l2 MpLm64l7EO+mJfR+MCIFkYKsmGZcFWVwJVLsW/BP4Qh4+wwXKb9AYv5kDeQU5vyZ0eS0 R4Kg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20161025 header.b=b2kjV3Xw; 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 w1si3733273ejq.335.2021.05.06.19.22.24; Thu, 06 May 2021 19:22:25 -0700 (PDT) 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=20161025 header.b=b2kjV3Xw; 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 0A4C7680895; Fri, 7 May 2021 05:22:21 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-vs1-f51.google.com (mail-vs1-f51.google.com [209.85.217.51]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 90BBF680231 for ; Fri, 7 May 2021 05:22:14 +0300 (EEST) Received: by mail-vs1-f51.google.com with SMTP id 66so3953910vsk.9 for ; Thu, 06 May 2021 19:22:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=LOgBFyHfHOecnFHtvNw0s6wPJTRZwHd508wSN21C2Z4=; b=b2kjV3Xw4oKpAy52+2I3sekmGinAq6jgg0QajpnxI2LDCGKbvaGzxfIJmnKcuAWEnh 9xuwNrcSdXasMpL5SeF3/AJ4y/KltS7VN3qjuNXyUmyAfxNtvNk1+b6nuMTFDyOC9hmF VwO+W17tYmtlQo6cshAf0d1G4G5Rh3QOZZ5YFrIXCxFxRjc13Cx6YCYHUtOKty5CEsXW +uvJ8+NjHRyzOuSm6d+jgE2nK2bWcnpYSNLGuHWdsiH7Sd6i/sKwwZE3gMVaL8udnncH O4K9n8lxxA2abWmhuxDyHn7lUpP7BULz+u945FVDRkypxfVI+wdF6rapxEd6ftCksIzY giGA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=LOgBFyHfHOecnFHtvNw0s6wPJTRZwHd508wSN21C2Z4=; b=uS4O94xUVn+WMcFyAVCHt8CY8m7haydYqQFsDCOQQECis9DoldkvWajWEQOaDI2iRC pYxsLd9f5B2JYBadg/DIUSRogP7LcgwgcNc4nsrlsHbW4i7Yk1DTN29EYiL6RlK1sqC9 bhZ+yfDtoGgQVIP+KpFCBmfkZF/CIsOB2KCrFDsru0zS9w0Jj4AUIldxpq7EbF05izZ3 BTKdIn2WnN8FxCu35FmZiGwP110fmoeH+Fnid/rL/l4lZhm1bMdoc9yBQjpi4qYuB/bY cug9oJ5ynrwX7mGwDOOTAYyZveI4eNK/XbNzbgSP0cf0UzFXZM7EqhMfrKUBmtaMskFH iOiA== X-Gm-Message-State: AOAM532NMzuxnyuF5e+DbsK7tLuRtsbSMmsYcD5xIqHOVqxM+FU0Mksv df39t8/Ft5Y3ysAFoZ8RS4CoUhQuKkE= X-Received: by 2002:a62:a515:0:b029:263:214f:27ff with SMTP id v21-20020a62a5150000b0290263214f27ffmr7785454pfm.4.1620350591552; Thu, 06 May 2021 18:23:11 -0700 (PDT) Received: from vpn2.localdomain ([161.117.202.209]) by smtp.gmail.com with ESMTPSA id h6sm3167429pfb.157.2021.05.06.18.23.10 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 06 May 2021 18:23:11 -0700 (PDT) From: lance.lmwang@gmail.com To: ffmpeg-devel@ffmpeg.org Date: Fri, 7 May 2021 09:23:04 +0800 Message-Id: <1620350584-21215-2-git-send-email-lance.lmwang@gmail.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1620350584-21215-1-git-send-email-lance.lmwang@gmail.com> References: <1620350584-21215-1-git-send-email-lance.lmwang@gmail.com> Subject: [FFmpeg-devel] [PATCH 2/2] avformat/hls: use av_strncasecmp() 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: pUWedm+/q71H From: Limin Wang Signed-off-by: Limin Wang --- libavformat/hls.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libavformat/hls.c b/libavformat/hls.c index c7f9f06..9610b83 100644 --- a/libavformat/hls.c +++ b/libavformat/hls.c @@ -799,7 +799,7 @@ static int parse_playlist(HLSContext *c, const char *url, key_type = KEY_AES_128; if (!strcmp(info.method, "SAMPLE-AES")) key_type = KEY_SAMPLE_AES; - if (!strncmp(info.iv, "0x", 2) || !strncmp(info.iv, "0X", 2)) { + if (!av_strncasecmp(info.iv, "0x", 2)) { ff_hex_to_data(iv, sizeof(iv), info.iv + 2); has_iv = 1; }