From nobody Wed Nov 12 03:42:17 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1567547162; cv=none; d=zoho.com; s=zohoarc; b=HM/Z+R9G6gQ3DDKzrD96UELJ5chKBOFBiayKhG3M8y75FeW9KYXDIWjv4fAO1bXoNDq/p7yopPD5nCihnAofOSkgnUFMETOZwsdf+dai63cIrUv9WiFciOnz1/ogZlnwBF7iRlV5q/FYQ4G5FRQxiqHAmPhIJTIpG3dr/uUrujM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1567547162; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To:ARC-Authentication-Results; bh=HfBAUKov8Ejf2vCZnc/XdMgQqr75dP1+9B5QVxUuOvE=; b=Mr6TNq+cyaIFPrqTizVum6P1HWV11oP/YJbPpfFRQgwZivaMyqkPgFslWiEGJTwTgkPadH8jxXadDcHY6nnaGUdJOCIuc8Vq1KUKTQJzEWKcBvo1q6wF57xYHD0XJh5VFyXJGGBFSvql5hxSmLTqSkXDQN/dkoRoRtpwA5+hfk4= ARC-Authentication-Results: i=1; mx.zoho.com; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1567547162427528.591628327849; Tue, 3 Sep 2019 14:46:02 -0700 (PDT) Received: from localhost ([::1]:51978 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1i5Gcf-0002UT-4K for importer@patchew.org; Tue, 03 Sep 2019 17:45:57 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:56988) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1i5Fwd-0004Mx-Or for qemu-devel@nongnu.org; Tue, 03 Sep 2019 17:02:32 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1i5Fwc-0001RP-RJ for qemu-devel@nongnu.org; Tue, 03 Sep 2019 17:02:31 -0400 Received: from mx1.redhat.com ([209.132.183.28]:51476) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1i5Fwc-0001RB-M3 for qemu-devel@nongnu.org; Tue, 03 Sep 2019 17:02:30 -0400 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id F238C30832DC; Tue, 3 Sep 2019 21:02:29 +0000 (UTC) Received: from localhost (ovpn-116-55.gru2.redhat.com [10.97.116.55]) by smtp.corp.redhat.com (Postfix) with ESMTP id 3DE035D6B2; Tue, 3 Sep 2019 21:02:27 +0000 (UTC) From: Eduardo Habkost To: Paolo Bonzini , Igor Mammedov , Peter Maydell , Richard Henderson , Marcel Apfelbaum , qemu-devel@nongnu.org Date: Tue, 3 Sep 2019 18:01:58 -0300 Message-Id: <20190903210201.14627-11-ehabkost@redhat.com> In-Reply-To: <20190903210201.14627-1-ehabkost@redhat.com> References: <20190903210201.14627-1-ehabkost@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.44]); Tue, 03 Sep 2019 21:02:30 +0000 (UTC) Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [PULL v2 10/13] hostmem-file: fix pmem file size check X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Stefan Hajnoczi Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" From: Stefan Hajnoczi Commit 314aec4a6e06844937f1677f6cba21981005f389 ("hostmem-file: reject invalid pmem file sizes") added a file size check that verifies the hostmem object's size parameter against the actual devdax pmem file. This is useful because getting the size wrong results in confusing errors inside the guest. However, the code doesn't work properly for files where struct stat::st_size is zero. Hostmem-file's ->alloc() function returns early without setting an Error, causing the following assertion failure: qemu/memory.c:2215: memory_region_get_ram_ptr: Assertion `mr->ram_block' = failed. This patch handles the case where qemu_get_pmem_size() returns 0 but there is no error. Fixes: 314aec4a6e06844937f1677f6cba21981005f389 Signed-off-by: Stefan Hajnoczi Message-Id: <20190823135632.25010-1-stefanha@redhat.com> Signed-off-by: Eduardo Habkost --- backends/hostmem-file.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/backends/hostmem-file.c b/backends/hostmem-file.c index 29e55c9195..ecc15e3eb0 100644 --- a/backends/hostmem-file.c +++ b/backends/hostmem-file.c @@ -67,12 +67,12 @@ file_backend_memory_alloc(HostMemoryBackend *backend, E= rror **errp) uint64_t size; =20 size =3D qemu_get_pmem_size(fb->mem_path, &local_err); - if (!size) { + if (local_err) { error_propagate(errp, local_err); return; } =20 - if (backend->size > size) { + if (size && backend->size > size) { error_setg(errp, "size property %" PRIu64 " is larger than " "pmem file \"%s\" size %" PRIu64, backend->size, fb->mem_path, size); --=20 2.21.0