Received: by 2002:a25:e74b:0:0:0:0:0 with SMTP id e72csp501375ybh; Wed, 22 Jul 2020 06:11:05 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyd+J5WOtr9uFHkz0ZVPAj76K/LcHhxFC9HXfND9LWad4ONncVWeBbSJ6XTCORs7y/oKUgY X-Received: by 2002:a17:906:958f:: with SMTP id r15mr1040039ejx.77.1595423464986; Wed, 22 Jul 2020 06:11:04 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1595423464; cv=none; d=google.com; s=arc-20160816; b=LKuSOc+WdTTVGXuMEa5ci9QNB098K3/Wj1E6iUFvQJ6WezovkZWIEcmoDwLy7Mc4JC 99zFGgy7NEImNk2K6y6xgQVTDvx+fx4A8mRWGq6E8BKmhCquvgBK4lSZww6417oS7chf dauGemfaN7XCxv3Y+cKTB6LnJG4DeKL7Rwvjm2bnWjp/br0ppHcDlKPqHTAizuP+9XIU tycHBrHDDH+okZMTpPW3Oh8VsetBC8iyb++Uc+0OTgHPrv9T9+JuMorG/VC06iJyhPF3 EmPgSyAweD/6NxrSvWUW96a4+yNIBoTykXdlA9fLLMCPVzxOCihGjRLbsMq5B7Vssljq Hscw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from; bh=BTSqIjk1xVe6VJzdmf/Z55wQwbOLMymZ5Hst8mwfbFA=; b=B0hCpzA4j+UrNEN1Xiv/CMGFQHjabGDVjngGNC4kAMP5PI1hue+sp7SGDvVW9WHZyT fGa0FRrE3M0afo0Z4hgXKoN/vqykCVQLYQ5SFy1FjDQ79bR50XN3xba15hkH/n9jTf1w y6pV7kkL9UW+unZWuzOkaPbDKtR5NuDyVCBCm07rpToA5LdR9eO7Z8eNmPvaoz19sbTM 8vmucXiBh3jgAOXCOUjYgXuKiR/+3ooEx/QoB5lN9xCsaR9W3ZKZs6PGCUVLkFfsVuB1 6MChOUa+nWMPFeBRD7cNCx6LhuMmux1uOvsRBm3AbOp8/kCZ3Dka0y4WbJR75QD1VYzF ud0w== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=canonical.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id y17si14756446ejk.677.2020.07.22.06.10.41; Wed, 22 Jul 2020 06:11:04 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=canonical.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730018AbgGVNJJ (ORCPT + 99 others); Wed, 22 Jul 2020 09:09:09 -0400 Received: from youngberry.canonical.com ([91.189.89.112]:37182 "EHLO youngberry.canonical.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726146AbgGVNJJ (ORCPT ); Wed, 22 Jul 2020 09:09:09 -0400 Received: from 1.general.cking.uk.vpn ([10.172.193.212] helo=localhost) by youngberry.canonical.com with esmtpsa (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.86_2) (envelope-from ) id 1jyEUZ-0003On-AS; Wed, 22 Jul 2020 13:09:03 +0000 From: Colin King To: Michael Tretter , Pengutronix Kernel Team , Mauro Carvalho Chehab , Hans Verkuil , linux-media@vger.kernel.org, devel@driverdev.osuosl.org Cc: kernel-janitors@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH][next][V2] media: allegro: fix potential null dereference on header Date: Wed, 22 Jul 2020 14:09:03 +0100 Message-Id: <20200722130903.818041-1-colin.king@canonical.com> X-Mailer: git-send-email 2.27.0 MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Colin Ian King The pointer header is an alias to msg and msg is being null checked. However, if msg is null then header is also null and this can lead to a null pointer dereference on the assignment type = header->type. Fix this just using header->type after the null check and removing the need for type as it is only used once. Addresses-Coverity: ("Dereference before null check") Fixes: 3de16839669f ("media: allegro: add explicit mail encoding and decoding") Signed-off-by: Colin Ian King --- V2: remove need for variable type, as suggested by Michael Tretter --- drivers/staging/media/allegro-dvt/allegro-mail.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/staging/media/allegro-dvt/allegro-mail.c b/drivers/staging/media/allegro-dvt/allegro-mail.c index 4ac65de12463..9286d2162377 100644 --- a/drivers/staging/media/allegro-dvt/allegro-mail.c +++ b/drivers/staging/media/allegro-dvt/allegro-mail.c @@ -462,13 +462,12 @@ allegro_dec_encode_frame(struct mcu_msg_encode_frame_response *msg, u32 *src) ssize_t allegro_encode_mail(u32 *dst, void *msg) { const struct mcu_msg_header *header = msg; - enum mcu_msg_type type = header->type; ssize_t size; if (!msg || !dst) return -EINVAL; - switch (type) { + switch (header->type) { case MCU_MSG_TYPE_INIT: size = allegro_enc_init(&dst[1], msg); break; -- 2.27.0