Received: by 2002:a05:6902:102b:0:0:0:0 with SMTP id x11csp2006616ybt; Mon, 15 Jun 2020 15:38:06 -0700 (PDT) X-Google-Smtp-Source: ABdhPJz3Fg3MTKfeofxHnrObcW8lYkH2hlCSeo3cDGa1eN4ShldZc87n7nGipufE59bDCKYifYJy X-Received: by 2002:a05:6402:22ca:: with SMTP id dm10mr2300edb.115.1592260686086; Mon, 15 Jun 2020 15:38:06 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1592260686; cv=none; d=google.com; s=arc-20160816; b=ZK5ll+rzokFbGLJwq4sNwk1IskcHYx2gEYnuKGo1B7jUZhU/rVURmR1n0+dZbTxKYl zhGt3cHT+qwpnqIvzAl2mwhHTnljIT7+MGInHeumzNils2EcHasb+KKKMR2FaD5BJAp4 tS/+/QXbxoNV5+gHSNrldoZ1CcysieXaAANBb5KbMWZtwrO/bP7dcPCjfg+w+D7yKdJR Nm/cOrYr06zon5k2j37bdJMsR4La2p6o2uOZCRie5tXX4gR+osKG4HBQAEifrG3lDfdU ZLaW9cVr7S/ODFC9c+nh8xHq6Q3YJ0+hEwDEf40SzuANZG9GQglAYFrHhCuKO8aUTBTY JstQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:content-disposition :mime-version:message-id:subject:cc:to:from:date:dkim-signature; bh=7dWpmI0Pey2diqD4cVY0pYhKKDeEYrKe7VVLxI0oyTg=; b=GrEXRGzFBCgvPoSx6/hGefhywXUdmpK9m5ZEG3uuwcBvvZw5kZspvE+SQt2vKJ1Gse rbp8sRKKJxw4Of30X6C4QnAfh4rmkWg74Oun8KJ4AG0YW02bb++WHeQ3EEliznv3Z1a1 pBh1+cmPyQr5LIuVYxfnbRiBbqc3+mW2eQmzTDChQx1YaHdsxNNSjt129c10bBCoeM9F m0WcveVcnBw3G8A6ND1Ji/5eBEjN7XkkqgJtEdvJJXE4MIy0sTYQEYKFkEcnV2WgOqvo X8qV8hu7w96WS5VvkExWUjpBfb/oG2+CdaClvrfJqH8+34McPHrmGnLsqUVMjBv8Nf8P uP6g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=2nsSQhEo; 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=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id s9si10027293edx.608.2020.06.15.15.37.43; Mon, 15 Jun 2020 15:38:06 -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; dkim=pass header.i=@kernel.org header.s=default header.b=2nsSQhEo; 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=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726452AbgFOWfy (ORCPT + 99 others); Mon, 15 Jun 2020 18:35:54 -0400 Received: from mail.kernel.org ([198.145.29.99]:52106 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725960AbgFOWfy (ORCPT ); Mon, 15 Jun 2020 18:35:54 -0400 Received: from embeddedor (unknown [189.207.59.248]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 328402071A; Mon, 15 Jun 2020 22:35:53 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1592260553; bh=eTCB2EW6RLvV2Ig6ZGQCIIQyJWs+h/bOXkyK93wZCEs=; h=Date:From:To:Cc:Subject:From; b=2nsSQhEoykRtd2Dk7GGmt826DRiFh1FIGpadTjWGwRD62mpsmGMf+M0Wf73pKi0+a /jtRnFn0psed2Dixgfi6+TK+Fny4jcSx99o0IiRb1v9YpI9OVbyYJ+jTiRNnYfBmP0 8mCZhW0wPaHXe3DOYyXkt5E0N9HrsFWbt1RfmEjY= Date: Mon, 15 Jun 2020 17:41:12 -0500 From: "Gustavo A. R. Silva" To: Steve French Cc: linux-cifs@vger.kernel.org, samba-technical@lists.samba.org, linux-kernel@vger.kernel.org, "Gustavo A. R. Silva" , Kees Cook Subject: [PATCH] cifs: misc: Use array_size() in if-statement controlling expression Message-ID: <20200615224112.GA12307@embeddedor> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.9.4 (2018-02-28) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Use array_size() instead of the open-coded version in the controlling expression of the if statement. Also, while there, use the preferred form for passing a size of a struct. The alternative form where struct name is spelled out hurts readability and introduces an opportunity for a bug when the pointer variable type is changed but the corresponding sizeof that is passed as argument is not. This issue was found with the help of Coccinelle and, audited and fixed manually. Addresses-KSPP-ID: https://github.com/KSPP/linux/issues/83 Signed-off-by: Gustavo A. R. Silva --- fs/cifs/misc.c | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/fs/cifs/misc.c b/fs/cifs/misc.c index 56791a692c8b..e44d049142d0 100644 --- a/fs/cifs/misc.c +++ b/fs/cifs/misc.c @@ -844,28 +844,26 @@ setup_aio_ctx_iter(struct cifs_aio_ctx *ctx, struct iov_iter *iter, int rw) struct bio_vec *bv = NULL; if (iov_iter_is_kvec(iter)) { - memcpy(&ctx->iter, iter, sizeof(struct iov_iter)); + memcpy(&ctx->iter, iter, sizeof(*iter)); ctx->len = count; iov_iter_advance(iter, count); return 0; } - if (max_pages * sizeof(struct bio_vec) <= CIFS_AIO_KMALLOC_LIMIT) - bv = kmalloc_array(max_pages, sizeof(struct bio_vec), - GFP_KERNEL); + if (array_size(max_pages, sizeof(*bv)) <= CIFS_AIO_KMALLOC_LIMIT) + bv = kmalloc_array(max_pages, sizeof(*bv), GFP_KERNEL); if (!bv) { - bv = vmalloc(array_size(max_pages, sizeof(struct bio_vec))); + bv = vmalloc(array_size(max_pages, sizeof(*bv))); if (!bv) return -ENOMEM; } - if (max_pages * sizeof(struct page *) <= CIFS_AIO_KMALLOC_LIMIT) - pages = kmalloc_array(max_pages, sizeof(struct page *), - GFP_KERNEL); + if (array_size(max_pages, sizeof(*pages)) <= CIFS_AIO_KMALLOC_LIMIT) + pages = kmalloc_array(max_pages, sizeof(*pages), GFP_KERNEL); if (!pages) { - pages = vmalloc(array_size(max_pages, sizeof(struct page *))); + pages = vmalloc(array_size(max_pages, sizeof(*pages))); if (!pages) { kvfree(bv); return -ENOMEM; -- 2.27.0