From patchwork Wed Mar 1 18:50:08 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jeremy Dorfman X-Patchwork-Id: 40562 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:d046:b0:cd:afd7:272c with SMTP id hv6csp3764985pzb; Wed, 1 Mar 2023 10:50:41 -0800 (PST) X-Google-Smtp-Source: AK7set9NBeaJTeyIC+iS6XX+0/QbQlrygxRtUuEaHenAGclk/niP1iGpLHSQ8VgL/bnNEbjvjkh9 X-Received: by 2002:aa7:dc17:0:b0:4af:70a5:55ee with SMTP id b23-20020aa7dc17000000b004af70a555eemr7805335edu.3.1677696641564; Wed, 01 Mar 2023 10:50:41 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1677696641; cv=none; d=google.com; s=arc-20160816; b=FrAxhIC69AA22ahQq9Ev46Sci+SXe816dvKZWv5Xn8iO9p3qLp++kAIwyK0b6N/IGl ZX8cgftTh3TkdaoMs/5eC6iwghT4fpu0fRe3WWxCmRsKBwIEtkJl+k0Vb9Y+kgXkxEF/ t1JpQNTKY3orRNAAnDuZogGVMpWVmh0ozRSfzaB2v5NBXop/z+U1jtc+7CNFxPTQkHrv 4wLdlHgcqM92LtL9DKGtgUQeZQmInc3m6foahAjZtBhU51cXiruKFY7NZGkrguFOZ2JB CW6flyRslv9JMnkY9zydE9f3VSO2n5PuB4BSF2ROyMOuCBM9Fqp4zZZOmyzF0YK0HDaz pMJw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:to:from:message-id:mime-version:date :dkim-signature:delivered-to; bh=FJN1ctQ2zNx77dHb+GkamvR7ek5p07i0duGbgilKc68=; b=CRwDbCkavd16GFaHDX41SRKjbXqHOx5n/2XqC9OzHhy1AiPVcUt1sCZDddDxTIRw/Q GmIrESqJehjww9mAwLAl47bR8as8u5i6ngBwAGTKDNsFJlxeXADVm2ahG/RPrhqBjNAx 8LuNCAU7kodMQ23YMMSr5MvieVDlgS1RGivpmS0YMffXPWsEfdx80X51GE5vFFg+0y42 8bfvPTdDNpVwixg9h/SD67qdlr38Yu9b13VFCWDvt0Wrs1iRdHbhvWDQ4vKxTHGcNrW1 +DP4cS2MZUQdjIJGiudhE1QMajM+gxM5IKLE1+kOa9f49jkhUEq9iYyQxBm/KAtrI79Z i3mg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@google.com header.s=20210112 header.b=dl2xnjBw; 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 n16-20020aa7c690000000b004bdf14718c0si1365477edq.99.2023.03.01.10.50.40; Wed, 01 Mar 2023 10:50:41 -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=@google.com header.s=20210112 header.b=dl2xnjBw; 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 AB7B068B04A; Wed, 1 Mar 2023 20:50:36 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qk1-f202.google.com (mail-qk1-f202.google.com [209.85.222.202]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 0745C68A8A0 for ; Wed, 1 Mar 2023 20:50:29 +0200 (EET) Received: by mail-qk1-f202.google.com with SMTP id 19-20020a370c13000000b007428253bb55so8597480qkm.23 for ; Wed, 01 Mar 2023 10:50:29 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=cc:to:from:subject:message-id:mime-version:date:from:to:cc:subject :date:message-id:reply-to; bh=fjhfv8vIiKJ5J3o7IXP72EBkHIljDoobZv9hyCGjE7Q=; b=dl2xnjBwsX5OLVBdTCutYq14v/DlqmJb3o+43sYX7wxbLOTdcm3KHpK2sotOzUHhZn n+VFC6iQt1j4kJMcpBRe1eQH5rCRUrAkiFDXupDS7U50FNw04Fcmk2e9At1UwrsMhW3y 14cFeqWqZFds45HZhEJqqAOjgqg8N1ufHHujtK9BGK2FOffw6qjLpH53nbaVf1TTTTrP +esjzdjPhV31gNZxjHgsiGSCA7BegtylhdAzjJGC5bnxoKMFXZ2TtS9LlxDqaFodhKeE 1Ynf7BDBJRn0wgGnwru9l+ebSEADPB4RpP6N0fX2Ana6LiGpNVmb4qJISNRllURJAdDl 98Gw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:from:subject:message-id:mime-version:date:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=fjhfv8vIiKJ5J3o7IXP72EBkHIljDoobZv9hyCGjE7Q=; b=SN1x/1VLKfSbKBXR6mrjOGYg2KpChrIfZelUa6E0rCkyQtU9uYkQPzoO5aYARsRl5U H4N+HPaHC5sisAGVaTRciY1Uh8SEzQIBm2MnYFUSzLZyQutrquy/w03XpkkdH8oxiSiu ECP3TTOIPjD74yXbHw/YonM35NxCfN3rQ6PDw6Pw+YFNJoHFT3soZO3PxEGaqwFcepDE c1fVVzav7XczjBjyQ9PTTw/ScDN3pGwaxZmeYUKgh1DCUd3x+asKWjNQi9IzCbjojixA xI3rGyYmaDf76u3qBxd5rky3XLpCTZSs59wANRePUb1sH2CaM7vKUhdwEXtC1tu895Sm HhsQ== X-Gm-Message-State: AO0yUKVdSTmqd80L4LmK7A4Yg9xlS4iARNGS2WVjSvC0xKktNNFRwjI8 6LHuIqbHwK25yR6GjH5UANyIhGQ/PqbIkv+9jFx+mTqsLJAWZ2+0nrdKt6wqd2Swec67e3/0I7x xaLO8AWDF4Wl4JvojlpgexTLI4JEshMxp+J90XnR/1lI7yIsehPPMjrPe76f/+1lkcB6E X-Received: from jdorfman01.cam.corp.google.com ([2620:15c:93:a:e80a:fc10:fa71:4379]) (user=jdorfman job=sendgmr) by 2002:ac8:1cd:0:b0:3b7:fda5:1cb9 with SMTP id b13-20020ac801cd000000b003b7fda51cb9mr1639860qtg.2.1677696627705; Wed, 01 Mar 2023 10:50:27 -0800 (PST) Date: Wed, 1 Mar 2023 13:50:08 -0500 Mime-Version: 1.0 X-Mailer: git-send-email 2.40.0.rc0.216.gc4246ad0f0-goog Message-ID: <20230301185008.2167529-1-jdorfman@google.com> From: Jeremy Dorfman To: ffmpeg-devel@ffmpeg.org Subject: [FFmpeg-devel] [PATCH] libavcodec/h264dec: avoid arithmetic on null pointers 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: Jeremy Dorfman Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: +Vf8jCRB6qOT null pointer arithmetic is undefined behavior in C. --- libavcodec/h264dec.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libavcodec/h264dec.c b/libavcodec/h264dec.c index 2d691731c5..ef698f2630 100644 --- a/libavcodec/h264dec.c +++ b/libavcodec/h264dec.c @@ -912,8 +912,8 @@ static int finalize_frame(H264Context *h, AVFrame *dst, H264Picture *out, int *g av_log(h->avctx, AV_LOG_DEBUG, "Duplicating field %d to fill missing\n", field); for (p = 0; p<4; p++) { - dst_data[p] = f->data[p] + (field^1)*f->linesize[p]; - src_data[p] = f->data[p] + field *f->linesize[p]; + dst_data[p] = f->data[p] ? f->data[p] + (field^1)*f->linesize[p] : NULL; + src_data[p] = f->data[p] ? f->data[p] + field *f->linesize[p] : NULL; linesizes[p] = 2*f->linesize[p]; }