Received: by 10.223.176.5 with SMTP id f5csp510777wra; Fri, 2 Feb 2018 01:24:56 -0800 (PST) X-Google-Smtp-Source: AH8x227UdbW67BEY2pJdGKGbUaioVhQai2Iw/8hAc76OgHYm0Wvj8JU3wokNkbQE4WdVM+HQhUwT X-Received: by 10.99.135.195 with SMTP id i186mr30549985pge.418.1517563495930; Fri, 02 Feb 2018 01:24:55 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1517563495; cv=none; d=google.com; s=arc-20160816; b=x5iS6fNW/qEtrOegWkfWVMClpSkPj5mBXvFLa2NUkppUymFSIFdcBoUorad3zfcfTA nQFlt+zZptMp2CNisatW8HpzEdgMri/zduMZxiOJ2EuXT+dcGSB3boFzVjmn8fwjsz/t ha1rvfCMdI4/lfwkmCz6mLKhy+XU9+3h/dVnDN74AQGcPLAnff0zRSqYjzJDuYWNvZ5W b0di993Cd6m3xbYUPsbb2QJo6QI9wJMCcjWPBbsEws6U/Tfx6YZGyGnXW2QbtNz2VqLZ 4dPFUEDcGtqMs1jryWkQ1MPe7laHX9xrGgXAApdHhHO52KEtBAhZxjSNk8SSpQCUDIdv LuQw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date:arc-authentication-results; bh=1rHdJrrK0XhorCnB8asU42XS9abOYFWQ0khhBB/heF8=; b=u1DFMMJyqV3yhHO2f88O42wpHiB/JoiYovb9XsDoDivARfg7FeZrssz7Fo8/6MpPRA r4VPtE9Cc1UN+0R7ZNBZMuBQ/u2rxj+2G8sr1skvL3JBN+ESwAZMKGtwQylDP5Eqe31f 5Afia0/PEariPKu/exu+2/p6+1tJD8k3Qx2O9sDFPimzx0Z2SjTbmszc+DHz1v9FGJ6v 19ktQ/R1Zj84sHNXDaBrLLQgSFjC8MKYkr/nwYuKReuu6WrnQ3Cb/a8CMEjgE+IgGY/9 muJqEv+5hYjU/2lLoKEC04Cwg+vpT7rNnLDDRJpfBoS1J78IhQPw80YZbab3uWke0pmL bkeA== 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id o76si1420773pfa.367.2018.02.02.01.24.41; Fri, 02 Feb 2018 01:24:55 -0800 (PST) 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751584AbeBBJXE (ORCPT + 99 others); Fri, 2 Feb 2018 04:23:04 -0500 Received: from nblzone-211-213.nblnetworks.fi ([83.145.211.213]:55582 "EHLO hillosipuli.retiisi.org.uk" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1750799AbeBBJXA (ORCPT ); Fri, 2 Feb 2018 04:23:00 -0500 Received: from valkosipuli.localdomain (valkosipuli.retiisi.org.uk [IPv6:2001:1bc8:1a6:d3d5::80:2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by hillosipuli.retiisi.org.uk (Postfix) with ESMTPS id 59486600F6; Fri, 2 Feb 2018 11:22:58 +0200 (EET) Received: from sakke by valkosipuli.localdomain with local (Exim 4.89) (envelope-from ) id 1ehXYf-00014X-QJ; Fri, 02 Feb 2018 11:22:57 +0200 Date: Fri, 2 Feb 2018 11:22:57 +0200 From: Sakari Ailus To: "Gustavo A. R. Silva" Cc: Mauro Carvalho Chehab , linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, "Gustavo A. R. Silva" Subject: Re: [PATCH 4/8] i2c: ov9650: fix potential integer overflow in __ov965x_set_frame_interval Message-ID: <20180202092257.xknpdvc4bcrg4dyi@valkosipuli.retiisi.org.uk> References: <8ccf6acf10745fd1b9f33a7cacd5365e125633bf.1517268668.git.gustavo@embeddedor.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <8ccf6acf10745fd1b9f33a7cacd5365e125633bf.1517268668.git.gustavo@embeddedor.com> User-Agent: NeoMutt/20170113 (1.7.2) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, Jan 29, 2018 at 06:32:01PM -0600, Gustavo A. R. Silva wrote: > Cast fi->interval.numerator to u64 in order to avoid a potential integer > overflow. This variable is being used in a context that expects an > expression of type u64. > > Addresses-Coverity-ID: 1324146 ("Unintentional integer overflow") > Signed-off-by: Gustavo A. R. Silva > --- > drivers/media/i2c/ov9650.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/media/i2c/ov9650.c b/drivers/media/i2c/ov9650.c > index e519f27..c674a49 100644 > --- a/drivers/media/i2c/ov9650.c > +++ b/drivers/media/i2c/ov9650.c > @@ -1130,7 +1130,7 @@ static int __ov965x_set_frame_interval(struct ov965x *ov965x, > if (fi->interval.denominator == 0) > return -EINVAL; > > - req_int = (u64)(fi->interval.numerator * 10000) / > + req_int = (u64)fi->interval.numerator * 10000 / > fi->interval.denominator; This requires do_div(). I've applied the patch with this change: diff --git a/drivers/media/i2c/ov9650.c b/drivers/media/i2c/ov9650.c index 88276dba828d..5bea31cd41aa 100644 --- a/drivers/media/i2c/ov9650.c +++ b/drivers/media/i2c/ov9650.c @@ -1136,8 +1136,8 @@ static int __ov965x_set_frame_interval(struct ov965x *ov965x, if (fi->interval.denominator == 0) return -EINVAL; - req_int = (u64)fi->interval.numerator * 10000 / - fi->interval.denominator; + req_int = (u64)fi->interval.numerator * 10000; + do_div(req_int, fi->interval.denominator); for (i = 0; i < ARRAY_SIZE(ov965x_intervals); i++) { const struct ov965x_interval *iv = &ov965x_intervals[i]; > > for (i = 0; i < ARRAY_SIZE(ov965x_intervals); i++) { > -- > 2.7.4 > -- Sakari Ailus e-mail: sakari.ailus@iki.fi