From nobody Mon Feb 9 16:12:43 2026 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=1567018605; cv=none; d=zoho.com; s=zohoarc; b=Zm6I8YLjhpasEKAZnglsZeNPD3NiuLaMvLRCJsilFVxs6OGa9fChk5TPs4b80gC2t2oifxfolNm/6qzyTSJET+dwyH8Ti1iSUBSSbRislCCJu5uOO5i/Qyp1EKQKgDYLfEFdVPQ6h3tyGDeqhX/Xg0yKsY0SIWifk+LSJnIWqfk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1567018605; 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=YpLc4OdhRFZT5+2LfrYgiSMfXHI9Xk30vb9Rsbw4Hvs1DC8bU/5L828pFOubtFZu76cqY6N3HmypLyX7HZz17d/cUEmihtBDMzq3hajOvXuFctXcNj/ttdB014y3vywdv92+WC4g0GmzEFn3UQwuz0Q5shsv+8nDlr7BD1s0Y8k= 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 1567018605268280.0432279094514; Wed, 28 Aug 2019 11:56:45 -0700 (PDT) Received: from localhost ([::1]:39942 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1i337c-0001Bn-55 for importer@patchew.org; Wed, 28 Aug 2019 14:56:44 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:33426) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1i32sc-0002TY-G0 for qemu-devel@nongnu.org; Wed, 28 Aug 2019 14:41:16 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1i32sa-0003m6-PL for qemu-devel@nongnu.org; Wed, 28 Aug 2019 14:41:13 -0400 Received: from mx1.redhat.com ([209.132.183.28]:37744) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1i32sZ-0003lN-Of for qemu-devel@nongnu.org; Wed, 28 Aug 2019 14:41:12 -0400 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 129BC308429D; Wed, 28 Aug 2019 18:41:11 +0000 (UTC) Received: from localhost (ovpn-116-60.gru2.redhat.com [10.97.116.60]) by smtp.corp.redhat.com (Postfix) with ESMTP id 01293194B2; Wed, 28 Aug 2019 18:41:07 +0000 (UTC) From: Eduardo Habkost To: Paolo Bonzini , Igor Mammedov , qemu-devel@nongnu.org, Marcel Apfelbaum , Richard Henderson , Peter Maydell Date: Wed, 28 Aug 2019 15:40:25 -0300 Message-Id: <20190828184026.5840-12-ehabkost@redhat.com> In-Reply-To: <20190828184026.5840-1-ehabkost@redhat.com> References: <20190828184026.5840-1-ehabkost@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.40]); Wed, 28 Aug 2019 18:41:11 +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 v6 11/12] 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