From patchwork Tue Dec 20 22:23:08 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Ronald S. Bultje" X-Patchwork-Id: 1874 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.103.65.86 with SMTP id o83csp1945116vsa; Tue, 20 Dec 2016 14:31:51 -0800 (PST) X-Received: by 10.194.9.8 with SMTP id v8mr1388964wja.140.1482273111487; Tue, 20 Dec 2016 14:31:51 -0800 (PST) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id ek8si24756679wjd.74.2016.12.20.14.31.47; Tue, 20 Dec 2016 14:31:51 -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; 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 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 7197C68A20D; Wed, 21 Dec 2016 00:31:46 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qk0-f196.google.com (mail-qk0-f196.google.com [209.85.220.196]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 6DEC168A04C for ; Wed, 21 Dec 2016 00:31:40 +0200 (EET) Received: by mail-qk0-f196.google.com with SMTP id h201so5626362qke.3 for ; Tue, 20 Dec 2016 14:31:40 -0800 (PST) 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=VcGn9Ve6kSxuZ82089En2Y3rX3jqxLJ2mJpXQhPtAyo=; b=I6lPg1vR8dOpsLvjFkprgDIwmilK0EgsVJw82/P5rA3s0cNtDMQyUWx5ibxA8ZTSan wlCftCSMagSOlOUVjbLWI/dHc3xNsHjfWXcVQ37fmIeKkH2mrh8n+I/N/GULB4ZJ452q xaK8oxov7KwYfSyal5MQ/ZMZgmLqEiOXtxUy9bmdI7zT+cEUsABpfwfEcKZF4RSw171+ h7C1IyuKLJ5440EEraKGVOrrqQahjY6D4NYFf+We2CNxmvziD9/Afy9Lo9p/H+RDbV5y RnlZ7TGy8yoI4hZNTKJRFLmIvqYeEZksAofFAS7v4C7ehneQUM/5td0P4sJqzC+l5Aok 5siA== 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=VcGn9Ve6kSxuZ82089En2Y3rX3jqxLJ2mJpXQhPtAyo=; b=afwdafLDUQHSfCMIxrSLD9iSX4xv4m63g1jPvZ2cnZ2koFESnfCHdPG+vCkQxNK4V7 wsNXo59WFzlvpbMCAHs2aleM0XJng8LnnrZAn4/8lfaYua6HoI+E0hU9gaBifi/M/bPA +CMjBo+58/RNbeIkgIk9XMLb4pldhaNFGuUtUeLtSzvpi6Ct65fhGxf4FpQC+LzfYQn1 nuhF7O05PM165zF036R0LD7LVfZYQkS39Oef56aFjKtyT0IZZk7U9bGC4Q2s8PgeWO0I DWI+sCGV8HA5u368EnIiAlcmFEhxDnyOOEnEiCj9MN71OGFYdZe3d34lPXvNp+lOiYMm BzEQ== X-Gm-Message-State: AIkVDXItHdAPwy5DqwABNnAhw2HqC37MbX+v4y6lVXYwXsqYBA1b2yIH2BLTWK6D0qR5EQ== X-Received: by 10.55.49.67 with SMTP id x64mr1812284qkx.190.1482272594382; Tue, 20 Dec 2016 14:23:14 -0800 (PST) Received: from localhost.localdomain ([65.206.95.146]) by smtp.gmail.com with ESMTPSA id q88sm3594813qkq.21.2016.12.20.14.23.13 (version=TLS1 cipher=AES128-SHA bits=128/128); Tue, 20 Dec 2016 14:23:13 -0800 (PST) From: "Ronald S. Bultje" To: ffmpeg-devel@ffmpeg.org Date: Tue, 20 Dec 2016 17:23:08 -0500 Message-Id: <1482272588-20810-4-git-send-email-rsbultje@gmail.com> X-Mailer: git-send-email 2.8.1 In-Reply-To: <1482272588-20810-1-git-send-email-rsbultje@gmail.com> References: <1482272588-20810-1-git-send-email-rsbultje@gmail.com> Subject: [FFmpeg-devel] [PATCH 4/4] wmavoice: move overflow handling to common code. 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: "Ronald S. Bultje" MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" --- libavcodec/wmavoice.c | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) diff --git a/libavcodec/wmavoice.c b/libavcodec/wmavoice.c index f31c9d2..90dfe20 100644 --- a/libavcodec/wmavoice.c +++ b/libavcodec/wmavoice.c @@ -1800,6 +1800,11 @@ static int synth_superframe(AVCodecContext *ctx, AVFrame *frame, skip_bits(gb, 10 * (res + 1)); } + if (get_bits_left(gb) < 0) { + wmavoice_flush(ctx); + return AVERROR_INVALIDDATA; + } + *got_frame_ptr = 1; /* Update history */ @@ -1925,12 +1930,6 @@ static int wmavoice_decode_packet(AVCodecContext *ctx, void *data, cnt += s->spillover_nbits; s->skip_bits_next = cnt & 7; res = cnt >> 3; - if (res > avpkt->size) { - av_log(ctx, AV_LOG_ERROR, - "Trying to skip %d bytes in packet of size %d\n", - res, avpkt->size); - return AVERROR_INVALIDDATA; - } return res; } else skip_bits_long (gb, s->spillover_nbits - cnt + @@ -1955,12 +1954,6 @@ static int wmavoice_decode_packet(AVCodecContext *ctx, void *data, int cnt = get_bits_count(gb); s->skip_bits_next = cnt & 7; res = cnt >> 3; - if (res > avpkt->size) { - av_log(ctx, AV_LOG_ERROR, - "Trying to skip %d bytes in packet of size %d\n", - res, avpkt->size); - return AVERROR_INVALIDDATA; - } return res; } } else if ((s->sframe_cache_size = pos) > 0) {