Received: by 2002:ab2:1689:0:b0:1f7:5705:b850 with SMTP id d9csp230317lqa; Fri, 26 Apr 2024 23:22:28 -0700 (PDT) X-Forwarded-Encrypted: i=3; AJvYcCXTgeremCDd8YabLG/0ruRPcNJorNqoDK/AhvhkogLWJqYTwiJ1CBzsnCUAZdvkyLKsBeJW3vQCx/J4Ndu+D92ZLM4O7EfLEITRCWec5A== X-Google-Smtp-Source: AGHT+IGlQ4SOdn61dVRmbIN5nR45MOpiagNRGIcJhgDejwKlnGs3Mg6gv852u50+D/7fmYxqBj1v X-Received: by 2002:a05:6512:2306:b0:51d:1d32:c676 with SMTP id o6-20020a056512230600b0051d1d32c676mr696601lfu.37.1714198948177; Fri, 26 Apr 2024 23:22:28 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1714198948; cv=pass; d=google.com; s=arc-20160816; b=VivQBll/7CAdmmqubym9mPPiWrtUUmZpOIoVXnmXrJUT2KSbJ/2PDzmBHmL0rwv9No Lxc0LtxvJQDq1x+4JPw6YLXFeXo8+pFadbUOwNbE1+6fWGHXc2VD+7NIxYLIWex7zjLL X7tkGiq32pKa6fypgeOv2Shplg/KD4a+15gnFbsNoGU4r8qZyfqm7iGDqm0W5Fu4+//X hzt9Uzfvj3L64QDmIElJfh83YLXxktzZQv0XGeWe3UQibl3PWJDb1xulYXcDY3uI9uUO 1QSkVtR47YVUtKYuVCEfdIU1ocWc7QhQQB42tW3PCuBLCGVKy8WahvMSdqehcx4bPJKa YGig== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=in-reply-to:content-disposition:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:references:message-id:subject:cc :to:from:date:dkim-signature:dkim-signature; bh=o3ztep49Ehxc1xACAdWujM2rDNv4v9W5wVN14aJWpYI=; fh=CkeHjComhBHU67pB4K+xJV/qdVAyR1gEnKmjTRYV3XE=; b=I4tJw9Xb+QlSwhulVMzu22P1pFGXcb5U9ahQGSCzlImR0VC4Eu5gUG93kVKLa/VZEI X1PL8W/VzZ7HtDpv1nCOAFitjT0U1gpc8/AXWSKEUaUroiLqtDsRHUtAawktAU7daBr/ fDdl8RQZVy0pVnLnqfiRFSJVDb7TDejw30t/Jiq674Ymn6TtLlro2ddi1BC5vHuVZGNH X6g+tVqw/Vh2v4IQED70l6bXwXXlLd1+hw8GToYpTNbaV/FE3rnyP45ghff63G/IWPMt uJO/lxPduF+ga7rAra0qb3yzRrfgNJ4iChggl1ObhlMqRm6dZWcyqlymdxuMFqAiGRgU Obpw==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@ravnborg.org header.s=rsa1 header.b=Y9mcYoAG; dkim=neutral (no key) header.i=@ravnborg.org header.s=ed1 header.b=+oB1trl1; arc=pass (i=1 dkim=pass dkdomain=ravnborg.org); spf=pass (google.com: domain of linux-kernel+bounces-160917-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:4601:e00::3 as permitted sender) smtp.mailfrom="linux-kernel+bounces-160917-linux.lists.archive=gmail.com@vger.kernel.org" Return-Path: Received: from am.mirrors.kernel.org (am.mirrors.kernel.org. [2604:1380:4601:e00::3]) by mx.google.com with ESMTPS id kk9-20020a170907766900b00a52595a3a4asi11528033ejc.98.2024.04.26.23.22.28 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 26 Apr 2024 23:22:28 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel+bounces-160917-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:4601:e00::3 as permitted sender) client-ip=2604:1380:4601:e00::3; Authentication-Results: mx.google.com; dkim=pass header.i=@ravnborg.org header.s=rsa1 header.b=Y9mcYoAG; dkim=neutral (no key) header.i=@ravnborg.org header.s=ed1 header.b=+oB1trl1; arc=pass (i=1 dkim=pass dkdomain=ravnborg.org); spf=pass (google.com: domain of linux-kernel+bounces-160917-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:4601:e00::3 as permitted sender) smtp.mailfrom="linux-kernel+bounces-160917-linux.lists.archive=gmail.com@vger.kernel.org" Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by am.mirrors.kernel.org (Postfix) with ESMTPS id DFD4C1F229BC for ; Sat, 27 Apr 2024 06:22:27 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id F17F14086A; Sat, 27 Apr 2024 06:22:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=ravnborg.org header.i=@ravnborg.org header.b="Y9mcYoAG"; dkim=permerror (0-bit key) header.d=ravnborg.org header.i=@ravnborg.org header.b="+oB1trl1" Received: from mailrelay4-1.pub.mailoutpod3-cph3.one.com (mailrelay4-1.pub.mailoutpod3-cph3.one.com [46.30.211.243]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A5F113D575 for ; Sat, 27 Apr 2024 06:22:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=46.30.211.243 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1714198941; cv=none; b=V0h5G5peBVL4oQAbMvRUQqOtdqiRgaILObUWfWwCfLRIDYOJhuo4AgFsJKzrWaUZdaZM6ShLofhL3VgekZA/eKEVrgQBGcbQF86JRkcpHIdcdQDioYrlI47nL/FakGBERIAKIgYxz7jZjyPlxl7KplT3UpsJ4tpOznVi77BMmF4= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1714198941; c=relaxed/simple; bh=F960iJ3WrYrS7d7Tp2tGCfXy1flvTjEooXmW1N7d9BM=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=gPE0QZXbqTWgTr/n4xo1lpj+XLlLqbGht/wK7EW4miiE3HpfwBnTMIbsBVw44IaIse9gygExKeSrX6vsfkLHPNIJSfWGcsSDqCTN7X5NpSgwf+P2oO32nTidpic0xKuWaVxCVcZIHjdSaIYtAlkmmJo4jEfI13BUetX51AE13fA= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=ravnborg.org; spf=none smtp.mailfrom=ravnborg.org; dkim=pass (2048-bit key) header.d=ravnborg.org header.i=@ravnborg.org header.b=Y9mcYoAG; dkim=permerror (0-bit key) header.d=ravnborg.org header.i=@ravnborg.org header.b=+oB1trl1; arc=none smtp.client-ip=46.30.211.243 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=ravnborg.org Authentication-Results: smtp.subspace.kernel.org; spf=none smtp.mailfrom=ravnborg.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ravnborg.org; s=rsa1; h=in-reply-to:content-type:mime-version:references:message-id:subject:cc:to: from:date:from; bh=o3ztep49Ehxc1xACAdWujM2rDNv4v9W5wVN14aJWpYI=; b=Y9mcYoAGUZoEpJWZ6llUKEQdpvh2klBCROuKOzWUgxSccEdlIzGO4qrToBJGeKlqU5o1MBJ0T1IZj a44jqfUcSgMqUCzF17sPULSqVYklnyb60Fm40K1coT5Vfr4kvPv8xc6RYOUsCBAkRvVYH8tW7rVqb0 4yQxOCz+IMT5j9grCYwGX/F/kYl79FI4lBhk6RjB5mz/PES8Y0xWVZj3qF3M9C+wAhR+OLih6Qqubn vPS8M0MJH+Aa7Iuic+Am9NxhZSi3DUsTM7JL8GTcXzqmNr5gE8ekPSRwiWTdxru9+yM04KEP0CyAMO 3kxVV/pc/CgoaiK3yMmCEA1tmCnwn5Q== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=ravnborg.org; s=ed1; h=in-reply-to:content-type:mime-version:references:message-id:subject:cc:to: from:date:from; bh=o3ztep49Ehxc1xACAdWujM2rDNv4v9W5wVN14aJWpYI=; b=+oB1trl1r5wfA2halqR7rs3G6kyYMFkHyGPhOfrJoRa1G04kKkBVgVWBkbVvzkVyIR4DiREUdAjsl O17LwuPAw== X-HalOne-ID: 75b798e8-045e-11ef-ae42-591fce59e039 Received: from ravnborg.org (2-105-2-98-cable.dk.customer.tdc.net [2.105.2.98]) by mailrelay4.pub.mailoutpod3-cph3.one.com (Halon) with ESMTPSA id 75b798e8-045e-11ef-ae42-591fce59e039; Sat, 27 Apr 2024 06:22:05 +0000 (UTC) Date: Sat, 27 Apr 2024 08:22:02 +0200 From: Sam Ravnborg To: Dmitry Baryshkov , Douglas Anderson Cc: Douglas Anderson , dri-devel@lists.freedesktop.org, Linus Walleij , lvzhaoxiong@huaqin.corp-partner.google.com, Jani Nikula , Hsin-Yi Wang , Javier Martinez Canillas , Neil Armstrong , Joel Selvaraj , Cong Yang , Daniel Vetter , David Airlie , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , linux-kernel@vger.kernel.org Subject: Re: [PATCH v2 1/8] drm/mipi-dsi: Fix theoretical int overflow in mipi_dsi_dcs_write_seq() Message-ID: <20240427062202.GA1137299@ravnborg.org> References: <20240426235857.3870424-1-dianders@chromium.org> <20240426165839.v2.1.I30fa4c8348ea316c886ef8a522a52fed617f930d@changeid> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: On Sat, Apr 27, 2024 at 04:44:33AM +0300, Dmitry Baryshkov wrote: > On Sat, 27 Apr 2024 at 02:59, Douglas Anderson wrote: > > > > The mipi_dsi_dcs_write_seq() macro makes a call to > > mipi_dsi_dcs_write_buffer() which returns a type ssize_t. The macro > > then stores it in an int and checks to see if it's negative. This > > could theoretically be a problem if "ssize_t" is larger than "int". > > > > To see the issue, imagine that "ssize_t" is 32-bits and "int" is > > 16-bits, you could see a problem if there was some code out there that > > looked like: > > > > mipi_dsi_dcs_write_seq(dsi, cmd, <32767 bytes as arguments>); > > > > ...since we'd get back that 32768 bytes were transferred and 32768 > > stored in a 16-bit int would look negative. > > > > Though there are no callsites where we'd actually hit this (even if > > "int" was only 16-bit), it's cleaner to make the types match so let's > > fix it. > > > > Fixes: 2a9e9daf7523 ("drm/mipi-dsi: Introduce mipi_dsi_dcs_write_seq macro") > > Signed-off-by: Douglas Anderson > > --- > > > > Changes in v2: > > - New > > > > include/drm/drm_mipi_dsi.h | 4 ++-- > > 1 file changed, 2 insertions(+), 2 deletions(-) > > > > diff --git a/include/drm/drm_mipi_dsi.h b/include/drm/drm_mipi_dsi.h > > index 82b1cc434ea3..b3576be22bfa 100644 > > --- a/include/drm/drm_mipi_dsi.h > > +++ b/include/drm/drm_mipi_dsi.h > > @@ -337,12 +337,12 @@ int mipi_dsi_dcs_get_display_brightness_large(struct mipi_dsi_device *dsi, > > do { \ > > static const u8 d[] = { cmd, seq }; \ > > struct device *dev = &dsi->dev; \ > > - int ret; \ > > + ssize_t ret; \ > > ret = mipi_dsi_dcs_write_buffer(dsi, d, ARRAY_SIZE(d)); \ > > if (ret < 0) { \ > > dev_err_ratelimited( \ > > dev, "sending command %#02x failed: %d\n", \ > > - cmd, ret); \ > > + cmd, (int)ret); \ > > Please consider using %zd instead Hi Douglas, please consider the above for all the pathces, there are more places where a cast can be dropped. Sam