Received: by 2002:a05:6a10:9848:0:0:0:0 with SMTP id x8csp3376971pxf; Mon, 5 Apr 2021 10:23:33 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxGt4WxMHkb6T97JAuEliSjKR1yj+TZt30tjbOnpiGmvzzvtxGjKA5viL6Vn7D4wsxGy6wd X-Received: by 2002:a6b:d60c:: with SMTP id w12mr20137455ioa.105.1617643413472; Mon, 05 Apr 2021 10:23:33 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1617643413; cv=none; d=google.com; s=arc-20160816; b=xJnLFKHNAR7Dv+MiMMG2a92YcTTnwZ097iT92PyP63zWZ8s4D3oXoQiQDe4pTj63k/ 9bobV9H1NdmY7o/xCBTDnPXf1ubGhGRIuzjjq4b6wnQ5woEjSeEtB67N1Ii+nPw8NSYX PHOTDfzAooPHWx1j4hGN9yQ9hA4HbNghZLebIbzrBZR8rtDZI/Z7Lk1H/tl8mzhdS9KO grw2a8uMJIVYXLGipJYG3xArSf5FUUgjBlUJcwFEJbgzW0YTlZz8bg6DExjVNhMnsR29 hZlBE9MRugiRmzPW1kLygoUbUsPqzTV5oPjuweZf2MZ6mhfTF7NrdWQmiuwnlWxg/8OP VwYA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=rwgFsiECZ3XWAJUEBB5GwEBmw0xe3athi9oPgbQa0l0=; b=mW6hT7Pik5qDFayq4a3OeUScLmnRuD5fVkAte2iytmia9Qw6/xIxokyZd2JJcarvAo sAK0POIgRhWQqT7BItMNYrMvuyhXYrZjAM9Rp76qKZPkrnbX2N9z/8caqbggSIMRa6GN AT+PBoTeBwkO36wWfqfotGAZHlsh2WoWz1LNDxODzWRjeLeobNPVOxustKJMxRc2KiID 4hUJZRsEzBwMvFEMxxGra1czQ2fGRQRK0dkyqRFk7OHqu1qy5sbyNijCuO833/jNSWpW rkicg+zpjbd6C8obU/PDOAzNde2eOs4Z/AKu5sSuYOFMpac6wtvHnJPjNL5GIxlpTYzo bT8A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=w5lHioEC; 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=linuxfoundation.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id n11si11400273ilm.140.2021.04.05.10.23.19; Mon, 05 Apr 2021 10:23:33 -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=@linuxfoundation.org header.s=korg header.b=w5lHioEC; 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=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S240662AbhDEJWC (ORCPT + 99 others); Mon, 5 Apr 2021 05:22:02 -0400 Received: from mail.kernel.org ([198.145.29.99]:38894 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S240801AbhDEJRE (ORCPT ); Mon, 5 Apr 2021 05:17:04 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 0519160FE4; Mon, 5 Apr 2021 09:16:57 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1617614218; bh=b1u0xQ3xOw06czjnFgcm5d/aVKgUd2RJ+TU+aMfNJKY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=w5lHioECdWskRxJWYHs0Yy+8oTspMZuROdEnRs9Bg6PtydHJnFXpvaVJKZSdqSw4U nae/VDya4rNkehpDqQfYmSXwqnjtE9Jm4RMmgo0TAMsQ7cvs/QS3RhCD82UCTYJKdc K1KdkfZI2wu+70giVFmYxj6FcDFmiN6zurtOTyzI= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Lv Yunlong , Michael Kelley , Wei Liu , Sasha Levin Subject: [PATCH 5.11 127/152] video: hyperv_fb: Fix a double free in hvfb_probe Date: Mon, 5 Apr 2021 10:54:36 +0200 Message-Id: <20210405085038.354961062@linuxfoundation.org> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210405085034.233917714@linuxfoundation.org> References: <20210405085034.233917714@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Lv Yunlong [ Upstream commit 37df9f3fedb6aeaff5564145e8162aab912c9284 ] Function hvfb_probe() calls hvfb_getmem(), expecting upon return that info->apertures is either NULL or points to memory that should be freed by framebuffer_release(). But hvfb_getmem() is freeing the memory and leaving the pointer non-NULL, resulting in a double free if an error occurs or later if hvfb_remove() is called. Fix this by removing all kfree(info->apertures) calls in hvfb_getmem(). This will allow framebuffer_release() to free the memory, which follows the pattern of other fbdev drivers. Fixes: 3a6fb6c4255c ("video: hyperv: hyperv_fb: Use physical memory for fb on HyperV Gen 1 VMs.") Signed-off-by: Lv Yunlong Reviewed-by: Michael Kelley Link: https://lore.kernel.org/r/20210324103724.4189-1-lyl2019@mail.ustc.edu.cn Signed-off-by: Wei Liu Signed-off-by: Sasha Levin --- drivers/video/fbdev/hyperv_fb.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/drivers/video/fbdev/hyperv_fb.c b/drivers/video/fbdev/hyperv_fb.c index c8b0ae676809..4dc9077dd2ac 100644 --- a/drivers/video/fbdev/hyperv_fb.c +++ b/drivers/video/fbdev/hyperv_fb.c @@ -1031,7 +1031,6 @@ static int hvfb_getmem(struct hv_device *hdev, struct fb_info *info) PCI_DEVICE_ID_HYPERV_VIDEO, NULL); if (!pdev) { pr_err("Unable to find PCI Hyper-V video\n"); - kfree(info->apertures); return -ENODEV; } @@ -1129,7 +1128,6 @@ getmem_done: } else { pci_dev_put(pdev); } - kfree(info->apertures); return 0; @@ -1141,7 +1139,6 @@ err2: err1: if (!gen2vm) pci_dev_put(pdev); - kfree(info->apertures); return -ENOMEM; } -- 2.30.2