From patchwork Mon Mar 30 07:30:16 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 18501 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id 31DEE44BB50 for ; Mon, 30 Mar 2020 10:30:33 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 09BDA68B4CB; Mon, 30 Mar 2020 10:30:33 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wr1-f68.google.com (mail-wr1-f68.google.com [209.85.221.68]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 5621F68B039 for ; Mon, 30 Mar 2020 10:30:26 +0300 (EEST) Received: by mail-wr1-f68.google.com with SMTP id a25so20313584wrd.0 for ; Mon, 30 Mar 2020 00:30:26 -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:mime-version :content-transfer-encoding; bh=n08YSXTkslGu+jqw9jwCWKlQxh3PuMbu4xAwj+90KOM=; b=pTdwLPAXf3wpsxZC+SNg/Wqz7z8ZS+pIGJuSbRZyXrLahwUmtmSchGUKiCTTFch1V0 qs2UCgubGmUyntZ3fTL78h57KKa8Vo4jpxlRBod+MUrRL4cmYzc1kqypNcRc+lQfG6QP J5TBzSwMa5aQH7P0ZWSayb5CKaEA6B5FH2JTJsp8NjA2c0+CaeGxstKyZIpCkmWRLn35 ziG8zUbtI4NS4RBdXh7NQxngafZoPKY6RW2l3tvg9hry8aVidR0iq3qB0BT4sVggb0S0 NUwDRgUCyUL9kpX1109Hj0REp8q/w5pMA/6S2ueaOxAI1/mM0treIRASO54IFjpanNzu iFYg== 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:mime-version :content-transfer-encoding; bh=n08YSXTkslGu+jqw9jwCWKlQxh3PuMbu4xAwj+90KOM=; b=rRjVsbDLVN+gY0zDGiJEiYw0z2AvxNNZyCeIrFjYTZ8p4XPIBn+VK5XZw2ws1WWjMf Vvy1fsjLCfAz78APVMt/uS5cfm19toyJV5+d8bEJoNll4vtECdxDexf6ikddRUb5alXL gyITrV35pYyKZC1uNaGeqMiJcCqpW54uPfj+jemU/91pch8Oxmviz9bMbXvTxdNvAuo0 ETKrwRxCe6n7VxLXmMySdvn0IQ+XTNI+GajhxH8YP1ZF0G8XCPIlp0aLHyXmUbfEcBeN cPQbx4EPPyVQfRAZrbzlRWvRTViC4aj0FctX/xaUqQNnoorjscSpwsFQefiX2VITXzu5 jTKw== X-Gm-Message-State: ANhLgQ0iyx+gzHsCj0kaS00CTe9V+3N4AJSVeVE/cV/s5WTRcENaSaA/ oWsV2pBSV/7K047WHLpDjcDVb8vc X-Google-Smtp-Source: ADFU+vsoMSzGQbMYg937uHnjQX9Lc7LMUh4IXTSLdySCRT0LWTqKP38BktzFpDfY+Wo+HJ8Oic3OlQ== X-Received: by 2002:adf:ea8f:: with SMTP id s15mr13263505wrm.393.1585553425282; Mon, 30 Mar 2020 00:30:25 -0700 (PDT) Received: from sblaptop.fritz.box (ipbcc1ab57.dynamic.kabel-deutschland.de. [188.193.171.87]) by smtp.gmail.com with ESMTPSA id a7sm3760878wmm.34.2020.03.30.00.30.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 30 Mar 2020 00:30:24 -0700 (PDT) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Mon, 30 Mar 2020 09:30:16 +0200 Message-Id: <20200330073017.17693-1-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.20.1 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 1/2] avformat/webmdashenc: Check codec types X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 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: Andreas Rheinhardt Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" The WebM DASH Manifest muxer only supports VP8, VP9, Vorbis and Opus, but there was no check for this. The codec type is used to get a pointer to a string containing the codec name or NULL if it is not one of those four codecs. Said pointer has then been used without further checks as string for the %s conversion specifier in an avio_printf()) call which is undefined behaviour. This commit adds a check for the supported codec types. Signed-off-by: Andreas Rheinhardt --- libavformat/webmdashenc.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/libavformat/webmdashenc.c b/libavformat/webmdashenc.c index d05b265330..182a361eae 100644 --- a/libavformat/webmdashenc.c +++ b/libavformat/webmdashenc.c @@ -516,6 +516,14 @@ static int webm_dash_manifest_write_header(AVFormatContext *s) double start = 0.0; int ret; WebMDashMuxContext *w = s->priv_data; + + for (unsigned i = 0; i < s->nb_streams; i++) { + enum AVCodecID codec_id = s->streams[i]->codecpar->codec_id; + if ((codec_id != AV_CODEC_ID_VP8) && (codec_id != AV_CODEC_ID_VP9) && + (codec_id != AV_CODEC_ID_VORBIS) && (codec_id != AV_CODEC_ID_OPUS)) + return AVERROR(EINVAL); + } + ret = parse_adaptation_sets(s); if (ret < 0) { goto fail; From patchwork Mon Mar 30 07:30:17 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 18502 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id 31A15443BFC for ; Mon, 30 Mar 2020 10:30:54 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 17A2168B6F6; Mon, 30 Mar 2020 10:30:54 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wm1-f41.google.com (mail-wm1-f41.google.com [209.85.128.41]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id F3CFE68B6F2 for ; Mon, 30 Mar 2020 10:30:47 +0300 (EEST) Received: by mail-wm1-f41.google.com with SMTP id r16so976894wmg.5 for ; Mon, 30 Mar 2020 00:30:47 -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 :mime-version:content-transfer-encoding; bh=0EssatLY53fofoegHLCgDY9hmnSEb28k3j1i6uf0MBM=; b=ZF1STtevcfDRUh6B46truwKj0JHjZzz3PKHg0JELmejkqfBkE9z3kKsHHlLtcZA31R gbd1G+y6bu9dS/RSPc/c73xRMCxeGJGCBUyIdZey707WzdmpqnuFBTPeGxWBNhF8hqOj 8ozr5IR27R/4LIyPcz3szgRKysPUT0Z3yIE33xrz+NphKqyJtaPaHbZ09kxqNohQTVlq eItEOLAEEQ7OzCoFKMOTNeTn94Lj4OWtDryt4M72fd18pjQK0FJ+30rwmP8bLI7Ty+av +ycJOSUjWaFEs4nZ0n3s3DgVGJsFuej4wuvRKXw+bn1tqfUvD8IT2irVNjM5TcO3rT0h K0uQ== 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:mime-version:content-transfer-encoding; bh=0EssatLY53fofoegHLCgDY9hmnSEb28k3j1i6uf0MBM=; b=grnV+ViU8dQXzqDt0rwQlosyCnICzUQaFYKiYouwY5AgTjr7jsoCffepCWx2lik8FW tDhLEOfbpca5yr27213i83lQki8RQgAhlxBHDNu4dlieYfBq1PgnFohC86+28El9lG9K 727yW9R6g7mFQfOnMTU38pFt2HJmnfU03EfOL9O55XWYCxDRMoI/+SETr3/wBHJyPrs6 Z4xwvpLXVYbIxygIH6UZEuTP9Lz5ehvB/lgna20DXhz6WXVTJVccjLPAtJijz67WDZ3v gtWyQFiMvLKjE0E/0btKD7GmuDpndfZF04+ohMyjEYA+siGu8g4yfapEKdQfFKPQZNys EVcQ== X-Gm-Message-State: ANhLgQ2KAO6nxPSavmAcZdH+ZHcncOU0X1kSPpw3vasTRb4y0w9fiNoC /XwnVabxYb41bSjz9BwlsL+z4Tdi X-Google-Smtp-Source: ADFU+vvj5hYryJGzS1ynJDJBgZzfWiQwMZeJ1k1NK+FrDQk8hGsvluOhM6FcArxhjDGPyU9hdsNajw== X-Received: by 2002:a1c:dc8b:: with SMTP id t133mr11078731wmg.99.1585553447045; Mon, 30 Mar 2020 00:30:47 -0700 (PDT) Received: from sblaptop.fritz.box (ipbcc1ab57.dynamic.kabel-deutschland.de. [188.193.171.87]) by smtp.gmail.com with ESMTPSA id a7sm3760878wmm.34.2020.03.30.00.30.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 30 Mar 2020 00:30:46 -0700 (PDT) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Mon, 30 Mar 2020 09:30:17 +0200 Message-Id: <20200330073017.17693-2-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200330073017.17693-1-andreas.rheinhardt@gmail.com> References: <20200330073017.17693-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 2/2] avformat/webmdashenc: Use AVCodecDescriptors for codec names X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 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: Andreas Rheinhardt Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Signed-off-by: Andreas Rheinhardt --- libavformat/webmdashenc.c | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/libavformat/webmdashenc.c b/libavformat/webmdashenc.c index 182a361eae..303cdd699b 100644 --- a/libavformat/webmdashenc.c +++ b/libavformat/webmdashenc.c @@ -61,17 +61,7 @@ typedef struct WebMDashMuxContext { static const char *get_codec_name(int codec_id) { - switch (codec_id) { - case AV_CODEC_ID_VP8: - return "vp8"; - case AV_CODEC_ID_VP9: - return "vp9"; - case AV_CODEC_ID_VORBIS: - return "vorbis"; - case AV_CODEC_ID_OPUS: - return "opus"; - } - return NULL; + return avcodec_descriptor_get(codec_id)->name; } static double get_duration(AVFormatContext *s)