From patchwork Fri Sep 1 12:33:54 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mark Wachsler X-Patchwork-Id: 4936 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.2.15.201 with SMTP id 70csp608238jao; Fri, 1 Sep 2017 05:34:45 -0700 (PDT) X-Received: by 10.28.139.207 with SMTP id n198mr358518wmd.181.1504269285179; Fri, 01 Sep 2017 05:34:45 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1504269285; cv=none; d=google.com; s=arc-20160816; b=vgWlFlQaxwmt4xjb5FpTFBM4+ZfA11A+W4VXsKHimetz1Mm9hzHjUY3W+GHbtnCsmT 3ElWDpTGbmpRbYeVWniL4VFiWq3wHA3db6tcB4CGAlWYpq36/xo5EYPFC2Z/LJfcj6E3 BUi8vYlAbP1h8MMXRE9az0ANfXLupF4gc7bFlgqEWlm0t0lTgq4Z6bp2+xAPZ9Evw93a sLHR/EErz3dMSE5M0zL7ifTTLr7NNL7qToT2EMc2cfTC606DdNlGTu0XbU/ma4OlRVlg d/HISLD2LB16kUjw6CYdUeRpLP1C3+F2oDZ3vyCkqLDk5abaxP1k8GPGgsRhK9pA6dgZ xy3Q== 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:arc-authentication-results; bh=Ve6f4TAo/3Oe12hGQeekdLs3Aww+Si/9IcknZ1c9Ehs=; b=RckJPXWhLZnahNaMU51m487UlKTywwy/tLVdWXBZxThYQyt6fWigxUz1NC10U3jfrD tur7kRsWmeoi6iDioI1s0bSa6nSGHcmNEgxZwFfYmegkfapKZ1Ce8YtFcY1RlbpMBpCz zL08Y/RakVxEPZT5KNJtfU/hwDEZ75yvhXoKKXwmV3EDrhkK/w5YG6Qu7M7GqyPAGyRp 1wy5x5JDsvAhlKQeZhpE+T79KQ3/0XiYft3Ho7NneyEgh0qPEdL+kThkrkxv8v1sn9SH A0xatY7vSuuI66myPCVDUvDFegkNmxfQwJ4AiBF/F0ru52uxoqWjXjCPG7TGfoQC24AQ vYEg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@google.com header.s=20161025 header.b=JUivmH6d; 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 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id o7si3744wme.111.2017.09.01.05.34.44; Fri, 01 Sep 2017 05:34:45 -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=@google.com header.s=20161025 header.b=JUivmH6d; 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 Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 3E68F68A3B8; Fri, 1 Sep 2017 15:34:41 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qk0-f180.google.com (mail-qk0-f180.google.com [209.85.220.180]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 5FC2B68A1F5 for ; Fri, 1 Sep 2017 15:34:34 +0300 (EEST) Received: by mail-qk0-f180.google.com with SMTP id k126so343569qkb.4 for ; Fri, 01 Sep 2017 05:34:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=from:to:cc:subject:date:message-id; bh=8sR5pBckiDZo+wR0o7eczbTpYrvCN7xa0q+/WDUCoCc=; b=JUivmH6ddoJbN8YIoaXKob1BfpSPLUcB8KuknrWEUvCeLdIMnDQldMbkE1JEVGot7Z enZylvUfbCKc2SOsbPRUnREOyqW6NegQqCmYo75ZIj77VBkgI1r3Y/mLZjzqVfb7275y rcDB614HAQBMg7aYhhN4h2iB52Kd4V0Flx8KAIW8QhCfyn7DJ2lWQuNEUvdKZygUboAc 1o9jzmsDiRvUQZpZyMSKbZfXcVpAztHkxDqusU46XVLYpAgWaLokKmVNDxVBevIv2GKn nM7xya/RIpFNrP+LH2Ydv774tfpa87Nvkh+e+rvCfRRs2084EHH195Pi8valKr7JMOHN nyUQ== 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=8sR5pBckiDZo+wR0o7eczbTpYrvCN7xa0q+/WDUCoCc=; b=qwkswuB+AOo15aQmoBcV50Ctg4FyU9aGCLvI0fD33ZcL/OJdZ2QkHEbJQqxukdCFlh 0AreUgk/yS+FeIE7y75G3Iq5c58duIOauu91ynd9G7eiG8ZsJnEjzjSRclKONql/B21/ oesPlGMljnJVheSTBjXIY20gg9qc9dGbr/Ie3hlT991fkl1XnfHI6qopPIb1Ca+JnRlh l8Zjj5mJzh+vyRBkqDyxxRc9sGYFnJehleitc/DGnXj2O1FLprSwCuMW/sx4guFTmkm6 gAhdic1PK+CFDLJtqNJ4hsBX9SUrilF86CvJG5HP1QN3T36cHaeV/MLUGtoO1rLIOr/H 96zQ== X-Gm-Message-State: AHPjjUjny1VTlYrY9CE2YTLZHS5PTDVJWKIXaCkd41n2LaB3FzcpbYRD cJFp7t0RUyEBmFnV31Y69A== X-Google-Smtp-Source: ADKCNb6UF3k0B/6z3KgDFsI3eSSKd8e/Ic6laq5TNUYT/4oE3x5PnvNTlR45oms9q7cdsWJFxBKEFQ== X-Received: by 10.55.168.88 with SMTP id r85mr2287007qke.289.1504269274246; Fri, 01 Sep 2017 05:34:34 -0700 (PDT) Received: from quechee.cam.corp.google.com ([172.23.221.16]) by smtp.gmail.com with ESMTPSA id s39sm6578qth.80.2017.09.01.05.34.33 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Fri, 01 Sep 2017 05:34:33 -0700 (PDT) From: Mark Wachsler To: ffmpeg-devel@ffmpeg.org Date: Fri, 1 Sep 2017 08:33:54 -0400 Message-Id: <20170901123354.26722-1-wachsler@google.com> X-Mailer: git-send-email 2.14.1.581.gf28d330327-goog Subject: [FFmpeg-devel] [PATCH] libavcodec/h264_parse: don't use uninitialized value when chroma_format_idc==0 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: Mark Wachsler MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" When parsing a monochrome file, chroma_log2_weight_denom was used without being initialized, which could lead to a bogus error message being printed, e.g. [h264 @ 0x61a000026480] chroma_log2_weight_denom 24576 is out of range It also could result in warnings using AddressSanitizer. --- libavcodec/h264_parse.c | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/libavcodec/h264_parse.c b/libavcodec/h264_parse.c index 3d20075f6a..d9a3a0c154 100644 --- a/libavcodec/h264_parse.c +++ b/libavcodec/h264_parse.c @@ -34,21 +34,22 @@ int ff_h264_pred_weight_table(GetBitContext *gb, const SPS *sps, pwt->use_weight = 0; pwt->use_weight_chroma = 0; - pwt->luma_log2_weight_denom = get_ue_golomb(gb); - if (sps->chroma_format_idc) - pwt->chroma_log2_weight_denom = get_ue_golomb(gb); + pwt->luma_log2_weight_denom = get_ue_golomb(gb); if (pwt->luma_log2_weight_denom > 7U) { av_log(logctx, AV_LOG_ERROR, "luma_log2_weight_denom %d is out of range\n", pwt->luma_log2_weight_denom); pwt->luma_log2_weight_denom = 0; } - if (pwt->chroma_log2_weight_denom > 7U) { - av_log(logctx, AV_LOG_ERROR, "chroma_log2_weight_denom %d is out of range\n", pwt->chroma_log2_weight_denom); - pwt->chroma_log2_weight_denom = 0; - } + luma_def = 1 << pwt->luma_log2_weight_denom; - luma_def = 1 << pwt->luma_log2_weight_denom; - chroma_def = 1 << pwt->chroma_log2_weight_denom; + if (sps->chroma_format_idc) { + pwt->chroma_log2_weight_denom = get_ue_golomb(gb); + if (pwt->chroma_log2_weight_denom > 7U) { + av_log(logctx, AV_LOG_ERROR, "chroma_log2_weight_denom %d is out of range\n", pwt->chroma_log2_weight_denom); + pwt->chroma_log2_weight_denom = 0; + } + chroma_def = 1 << pwt->chroma_log2_weight_denom; + } for (list = 0; list < 2; list++) { pwt->luma_weight_flag[list] = 0;