Received: by 2002:a05:6a10:22f:0:0:0:0 with SMTP id 15csp1576616pxk; Fri, 18 Sep 2020 17:06:13 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwmjY4hNHG4EHoyTxja08ejeBTXVnPqgaGIuVr874SFt/OMaZ0YppGxDv1Gh7K7lgovEpAM X-Received: by 2002:a17:906:dbf5:: with SMTP id yd21mr37648753ejb.521.1600473973564; Fri, 18 Sep 2020 17:06:13 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1600473973; cv=none; d=google.com; s=arc-20160816; b=Z4M4qht7uCZyGVzLyBZTQcFIpWrHcZudPaivPug64WNy4rhIt//JWIFmHlN4SxVx8d 7Ly4OZfv7387RHqZ1/geXOxL8wFy5YBtuXx7r/i1P92j5PBt7hMm0KMLh3pP2H6KWYnx +ljBjit7IFBO2BGx9HoAlNBGLCe3TP9zHwpWZcsyFWg0r/Tl9t7kMePHZV4PGSTrYSYN LAWBeNvZkcy1gw/mO6LgtXk2LA87Qu1wNKY9E/nM3VWzoknqk25kn6UNmN8pc33KbBSP yOE/vHqXlQp8Jkf6QxrEsZuVTs+3xWTcYIOmd5ttUgeSsa8tNFQ42DXnEa26GR807+pG czOw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:user-agent:in-reply-to:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :dkim-signature; bh=MJSqoq7O6gWAsf5ZKupzoAosodcetdeT6W1ldUxM5RY=; b=mEn7BNJNZ5UomASHM4oOXAtr2IgEZK/39rvdmY6x3ZFm/J/Vge1uGkZ3NiOHWINztl W3eP2ptZBMgcMlh9ITB2FrLIsABpmMMfIr8lAUMSf91RJ0Gsy5NfMyy6ZcPphMLDMaf7 kS4zhbi0pQwW4x4EOjw03YZPNeVVWXYsCBetcqmQH0q4HoA7r4MFUsu5FtHtD09RexBO tn5X3/OBbShie3DQ5U3McghGULb98jplbPmMFEbUyVlpRSBathc//BcYURnfSd4AZ0p8 Bh5kw3+dN4N4OX1IVuCkkIdqgYTG7JTgNoRlIjf2sTUKbnWrpy5e8AKRJ2+16v5oQBu2 l0MQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=fsP9RSFk; 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 s8si3493988edr.75.2020.09.18.17.05.49; Fri, 18 Sep 2020 17:06:13 -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=fsP9RSFk; 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 S1726280AbgISADt (ORCPT + 99 others); Fri, 18 Sep 2020 20:03:49 -0400 Received: from mail.kernel.org ([198.145.29.99]:50072 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726009AbgISADt (ORCPT ); Fri, 18 Sep 2020 20:03:49 -0400 Received: from embeddedor (187-162-31-110.static.axtel.net [187.162.31.110]) (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 0D91D21D7B; Sat, 19 Sep 2020 00:03:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1600473828; bh=oEBa36AVWkTR5WS0hFGxmPuS9UCLfzCx0uX7n3OmL40=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=fsP9RSFkTleWuPSduVxY6qlNLD5ArBqQUb1JK5arT7Uv7UyTKqL5AUNzl5t8gm4WW 4O4v7Pw1nXZyG0L3WqDcsiupA2PlglXHlJOY8inZ/3vDUTJYxDzZVHpo5ZeWpWwAno 0CZj1jNjRqriMN/Aov9YAhoZk9ZH+LnypkKcLn7Q= Date: Fri, 18 Sep 2020 19:09:25 -0500 From: "Gustavo A. R. Silva" To: Rustam Kovhaev Cc: pbonzini@redhat.com, vkuznets@redhat.com, kvm@vger.kernel.org, linux-kernel@vger.kernel.org, gregkh@linuxfoundation.org, stable@vger.kernel.org Subject: Re: [PATCH] KVM: use struct_size() and flex_array_size() helpers in kvm_io_bus_unregister_dev() Message-ID: <20200919000925.GA23967@embeddedor> References: <20200918120500.954436-1-rkovhaev@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20200918120500.954436-1-rkovhaev@gmail.com> User-Agent: Mutt/1.9.4 (2018-02-28) Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Sep 18, 2020 at 05:05:00AM -0700, Rustam Kovhaev wrote: > Make use of the struct_size() helper to avoid any potential type > mistakes and protect against potential integer overflows > Make use of the flex_array_size() helper to calculate the size of a > flexible array member within an enclosing structure > > Cc: stable@vger.kernel.org I don't think this change applies for -stable. > Suggested-by: Gustavo A. R. Silva > Signed-off-by: Rustam Kovhaev Reviewed-by: Gustavo A. R. Silva Thanks! -- Gustavo > --- > virt/kvm/kvm_main.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c > index cf88233b819a..68edd25dcb11 100644 > --- a/virt/kvm/kvm_main.c > +++ b/virt/kvm/kvm_main.c > @@ -4350,10 +4350,10 @@ void kvm_io_bus_unregister_dev(struct kvm *kvm, enum kvm_bus bus_idx, > new_bus = kmalloc(struct_size(bus, range, bus->dev_count - 1), > GFP_KERNEL_ACCOUNT); > if (new_bus) { > - memcpy(new_bus, bus, sizeof(*bus) + i * sizeof(struct kvm_io_range)); > + memcpy(new_bus, bus, struct_size(bus, range, i)); > new_bus->dev_count--; > memcpy(new_bus->range + i, bus->range + i + 1, > - (new_bus->dev_count - i) * sizeof(struct kvm_io_range)); > + flex_array_size(new_bus, range, new_bus->dev_count - i)); > } else { > pr_err("kvm: failed to shrink bus, removing it completely\n"); > for (j = 0; j < bus->dev_count; j++) { > -- > 2.28.0 >