Received: by 2002:a25:f815:0:0:0:0:0 with SMTP id u21csp2906880ybd; Mon, 24 Jun 2019 15:08:40 -0700 (PDT) X-Google-Smtp-Source: APXvYqyA66zvXsnPtxj1PkAOhffxara+TmkPgGdMIkdR7bcJquH5d4E1nu9b0L/BBUa5RcisYY+T X-Received: by 2002:a63:5a4b:: with SMTP id k11mr17689112pgm.143.1561414120556; Mon, 24 Jun 2019 15:08:40 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1561414120; cv=none; d=google.com; s=arc-20160816; b=zvdIqF7jeHxo5D6+5QR7RPYdguXrq1oPJk1xmTGA/DDgZEDBIi9J521RoKg2INMwUj ZMnF+1YkIJ/+KJQXXVh2lDvx0hSvwMF4p47w5W8TorPkC8ebYqHA25AC8m12TGavIvNS N2X/1kIPrJyfGg9meLt5hlG0sAHESiQ0ju3DXdugh6pzIXx3nCNRszIFfzO+pAKLY9+L JEjoRoBxUCJ4IGloi8N8m6eY2BP6RgvXKPhunxJ1/McDjb8UgSGB8DviR3iM6HF5ekRm XJUPr7aYtoEsRhUFlV/plZClCm7JWP+mD0KSNJ2LTRP1TKwG6H2eIca80R4eGT3xKwdw G1xQ== 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=g3E3kXjOOdVyWNkWsNjo5btiW2kMriRkv4A0Q1qy670=; b=NY1kH6LkdJVhhPELRJtoWP5rlicqxRTYVJPwaEurHuYaavNU6an82BJkJGh1QvSJCW p2qGVwDzlkHqudfgPQgTMtgkZdogC+yWdscnxwebzKBnrR2JTAZ/UXg6D9GIgU3uW1Hj 222TaIRDUJxrXHR0YF8SpNdUQvur3aYcBDYPpWXWWloPaXqc0STzZlX1rD52gtSr2ZcZ 4qlhCww+hAH1ZTU01KUez/4v0DiWxf9snKTtKvtOgJwmwPCHvO7njYhhgvu//HjuGab4 jjanXzWfPCOqMBZ2vwfXQKovKwg8EfcU5ovrzhrUrdrq/OwgiY8Zh8dcgqEQT4ACrnGo d6+A== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 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. [209.132.180.67]) by mx.google.com with ESMTP id y34si11469162plb.186.2019.06.24.15.08.24; Mon, 24 Jun 2019 15:08:40 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 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 S1729637AbfFXV6J (ORCPT + 99 others); Mon, 24 Jun 2019 17:58:09 -0400 Received: from youngberry.canonical.com ([91.189.89.112]:54186 "EHLO youngberry.canonical.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726372AbfFXV6I (ORCPT ); Mon, 24 Jun 2019 17:58:08 -0400 Received: from 1.general.cking.uk.vpn ([10.172.193.212] helo=localhost) by youngberry.canonical.com with esmtpsa (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.76) (envelope-from ) id 1hfWyS-0007FY-EG; Mon, 24 Jun 2019 21:58:04 +0000 From: Colin King To: Hans Verkuil , Mauro Carvalho Chehab , linux-media@vger.kernel.org Cc: kernel-janitors@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH][next] media: vivid: fix potential integer overflow on left shift Date: Mon, 24 Jun 2019 22:58:04 +0100 Message-Id: <20190624215804.12122-1-colin.king@canonical.com> X-Mailer: git-send-email 2.20.1 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 There is a potential integer overflow when int 2 is left shifted as this is evaluated using 32 bit arithmetic but is being used in a context that expects an expression of type s64. Fix this by shifting 2ULL to avoid a 32 bit overflow. Addresses-Coverity: ("Unintentional integer overflow") Fixes: 8a99e9faa131 ("media: vivid: add HDMI (dis)connect RX emulation") Fixes: 79a792dafac6 ("media: vivid: add HDMI (dis)connect TX emulation") Signed-off-by: Colin Ian King --- drivers/media/platform/vivid/vivid-ctrls.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/drivers/media/platform/vivid/vivid-ctrls.c b/drivers/media/platform/vivid/vivid-ctrls.c index 3e916c8befb7..8f340cfd6993 100644 --- a/drivers/media/platform/vivid/vivid-ctrls.c +++ b/drivers/media/platform/vivid/vivid-ctrls.c @@ -1634,8 +1634,8 @@ int vivid_create_controls(struct vivid_dev *dev, bool show_ccs_cap, 0, V4L2_DV_RGB_RANGE_AUTO); dev->ctrl_rx_power_present = v4l2_ctrl_new_std(hdl_vid_cap, NULL, V4L2_CID_DV_RX_POWER_PRESENT, 0, - (2 << (dev->num_hdmi_inputs - 1)) - 1, 0, - (2 << (dev->num_hdmi_inputs - 1)) - 1); + (2ULL << (dev->num_hdmi_inputs - 1)) - 1, 0, + (2ULL << (dev->num_hdmi_inputs - 1)) - 1); } if (dev->num_hdmi_outputs) { @@ -1653,16 +1653,16 @@ int vivid_create_controls(struct vivid_dev *dev, bool show_ccs_cap, &vivid_ctrl_display_present, NULL); dev->ctrl_tx_hotplug = v4l2_ctrl_new_std(hdl_vid_out, NULL, V4L2_CID_DV_TX_HOTPLUG, 0, - (2 << (dev->num_hdmi_outputs - 1)) - 1, 0, - (2 << (dev->num_hdmi_outputs - 1)) - 1); + (2ULL << (dev->num_hdmi_outputs - 1)) - 1, 0, + (2ULL << (dev->num_hdmi_outputs - 1)) - 1); dev->ctrl_tx_rxsense = v4l2_ctrl_new_std(hdl_vid_out, NULL, V4L2_CID_DV_TX_RXSENSE, 0, - (2 << (dev->num_hdmi_outputs - 1)) - 1, 0, - (2 << (dev->num_hdmi_outputs - 1)) - 1); + (2ULL << (dev->num_hdmi_outputs - 1)) - 1, 0, + (2ULL << (dev->num_hdmi_outputs - 1)) - 1); dev->ctrl_tx_edid_present = v4l2_ctrl_new_std(hdl_vid_out, NULL, V4L2_CID_DV_TX_EDID_PRESENT, 0, - (2 << (dev->num_hdmi_outputs - 1)) - 1, 0, - (2 << (dev->num_hdmi_outputs - 1)) - 1); + (2ULL << (dev->num_hdmi_outputs - 1)) - 1, 0, + (2ULL << (dev->num_hdmi_outputs - 1)) - 1); } if ((dev->has_vid_cap && dev->has_vid_out) || (dev->has_vbi_cap && dev->has_vbi_out)) -- 2.20.1