From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: <010701a135ea34fd-abcd0c80-ba67-458e-ba3d-0ea60ece4546-000000@eu-central-1.amazonses.com> Received: from DUZPR83CU001.outbound.protection.outlook.com (mail-northeuropeazon11022088.outbound.protection.outlook.com [52.101.66.88]) by lore.virtuozzo.com (Postfix) with ESMTPS id 92A728017D for ; Tue, 13 Oct 2026 15:38:30 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=MDPWbMgox/yTk2cKvMvXYIdQljLUDtM3MoP+A9J4aTlT4xAu+RLRJbOS2yOdvpAwGhhzTy7dGlqf/ih1FwZ+3KI5QQfOwLNb6n74C4oM/AxfK03q7izHhN+OPsy0sO3wKE/REbdSrZ5V0W8JBUPD/coDaYb7xAawls+JhvYu1Q+hyaTy1+47NxUT52CQew3xQH3kWootHS5iO/T79uBpYSE/8cAstz5LLBrcrxZ1xvrWpKi5IOQ9Y9D+NqDB4aAiRZJjrF2zhWPz70SJwmeu4HoqOAgd3aU2ARp6EYeZZgsBotxsaiY25g2iwZ0Lm1tw1Qbi51vysJic3YmWJgS5GQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=pONFbNLrI6YmQH4ykid42nMgH6Brca3tBgSGNKpa67s=; b=LVx/VkWh7LSQDCWng0kNRkRrpouQ6SBvrQ2PCVWEYLP0vBN4WoliaekXE6REC8XT+QVunf8dXgm6UV5v5uWI5HdQNKUz9Y7OAsILofQwacJAQD9O3t2Cxz6QjOkMzXpuqpfOahC/1a62Ak4mi6XUYeJ+prqr9sLVEJCLNA0dNfKlcSuqq0lcrlCsA9oyLUCCqOLLxBGi1DUJi+Poa2PsvkOGqKsmtMUifxX22ki1DIwH3uW1tlzW41z92UTwqIrQOrKwpzoAwerlOEJ4RK8kVXOdrMoTowWJkEplhrO7fAGJuwa/tasioQ6cTRc+i2iInKs32CVDQI/2wbhxWK4mVg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 69.169.224.1) smtp.rcpttodomain=virtuozzo.com smtp.mailfrom=eu-central-1.amazonses.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=sashiko.virtuozzo.com; dkim=pass (signature was verified) header.d=sashiko.virtuozzo.com; dkim=pass (signature was verified) header.d=amazonses.com; arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=virtuozzo.onmicrosoft.com; s=selector2-virtuozzo-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=pONFbNLrI6YmQH4ykid42nMgH6Brca3tBgSGNKpa67s=; b=Ao14mqUGGuBn9MKioYZPHrqP3guqcxhX1FCnpQLgVG8Ps+jBlTFpcz88pffKrFhfya5OeM/5WP7epY2qEZsodEYn66hEP1hv9lyh+hS1E+KKSwVsg8PfAw/paowsdJ7Dln9b+9kanjKHTEYNECe/lb7RvuiN88DTHCufmcKgebw= Received: from AS4P192CA0009.EURP192.PROD.OUTLOOK.COM (2603:10a6:20b:5da::16) by DB4PR08MB8126.eurprd08.prod.outlook.com (2603:10a6:10:383::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.522.11; Tue, 13 Oct 2026 15:38:24 +0000 Received: from CPH1EPF00000523.eurprd05.prod.outlook.com (2603:10a6:20b:5da:cafe::46) by AS4P192CA0009.outlook.office365.com (2603:10a6:20b:5da::16) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.472.20 via Frontend Transport; Tue, 13 Oct 2026 15:38:24 +0000 Authentication-Results: mx.microsoft.com 1; spf=pass (sender IP is 69.169.224.1) smtp.mailfrom=eu-central-1.amazonses.com; dkim=pass (signature was verified) header.d=sashiko.virtuozzo.com;dkim=pass (signature was verified) header.d=amazonses.com;dmarc=pass action=none header.from=sashiko.virtuozzo.com; Received-SPF: Pass (protection.outlook.com: domain of eu-central-1.amazonses.com designates 69.169.224.1 as permitted sender) receiver=protection.outlook.com; client-ip=69.169.224.1; helo=b224-1.smtp-out.eu-central-1.amazonses.com; pr=C Received: from b224-1.smtp-out.eu-central-1.amazonses.com (69.169.224.1) by CPH1EPF00000523.mail.protection.outlook.com (10.167.241.134) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.522.6 via Frontend Transport; Tue, 13 Oct 2026 15:38:24 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/simple; s=23yjbh4k34hwzfubhuiim7m4inbd3ick; d=sashiko.virtuozzo.com; t=1791905904; h=Message-ID:From:Subject:To:Cc:In-Reply-To:References:Content-Type:Content-Transfer-Encoding:Date; bh=X3NrYBNjp4flPxnvEdj33oZvlFk6juaQM4sFwNjNJO4=; b=K0R+WQeKdgKniLZLogZOyy5NSaA1LZHOE6M9sSOran078dtQ/rZC14+oadLxr/gb 9Bhx59K9etwGIiZoDqt74t3PQHd+YPfd0lAikuzi+WtyU58z/tZvhM3zP9J22eAgYOu VBrciOr0TnzrAUu/JFLmX31aNvhpczCWPPjhRZujmutnhsslOzsFCl+SAbJbuuuySza Q1YfyNWebbBX63wEpKZglIUeLstvE+CBqBMZ/dLqHQD79CyIYIqxHFI0dQSUVTieB0J kAoXufq1OQWJ9QZDT7CF71qDRswYKg2K7ng5bEntVQw0pUlLqF2xCyjsyyZBnEmEwfj 0XrAlAdLbQ== DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/simple; s=qftdzk2dqsatjnlrq4r5brjbihpfcrsh; d=amazonses.com; t=1791905904; h=Message-ID:From:Subject:To:Cc:In-Reply-To:References:Content-Type:Content-Transfer-Encoding:Date:Feedback-ID; bh=X3NrYBNjp4flPxnvEdj33oZvlFk6juaQM4sFwNjNJO4=; b=l2MsltOq41Dit3RJSfGHA5hQZzw2acs5MTQ/U30PkLkavNXvFd+jVsYsEEdsCbIb lFdQORWwn+G5Duh3vglCnFGko9myFphipMg+1g+7gDKqHThb9FzDyTP3qxgijJ0PYxO o3yKyjrFnutmM0Efw/WokqjyXi9/e3wR7+NS7UPc= Message-ID: <010701a135ea34fd-abcd0c80-ba67-458e-ba3d-0ea60ece4546-000000@eu-central-1.amazonses.com> From: no-reply@sashiko.virtuozzo.com Subject: Re: [PATCH QEMU HCI-8.1 v2 10/24] migration: vmstate_save_state_v: fix double error_setg To: Andrey Drobyshev , svt-core@virtuozzo.com Cc: andrey.drobyshev@virtuozzo.com In-Reply-To: <20261013-vfio_v1-v2-10-433455c0a294@virtuozzo.com> References: <20261013-vfio_v1-v2-0-433455c0a294@virtuozzo.com> <20261013-vfio_v1-v2-10-433455c0a294@virtuozzo.com> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Date: Tue, 13 Oct 2026 15:38:23 +0000 Feedback-ID: ::1.eu-central-1.2wRQJBpg9g1fGRYexx3dUuYGS25Bux+2TEOx72/m6U4=:AmazonSES X-SES-Outgoing: 2026.10.13-69.169.224.1 X-EOPAttributedMessage: 0 X-EOPTenantAttributedMessage: 0bc7f26d-0264-416e-a6fc-8352af79c58f:0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CPH1EPF00000523:EE_|DB4PR08MB8126:EE_ MIME-Version: 1.0 X-MS-Office365-Filtering-Correlation-Id: c8fcb86e-4d2a-4490-545c-08df294004ce X-LD-Processed: 0bc7f26d-0264-416e-a6fc-8352af79c58f,ExtAddr X-MS-Exchange-AtpMessageProperties: SA List-Id: svt-core@virtuozzo.com X-MS-Exchange-Transport-Rules-Loop: 1 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|704161411799003|9140799003|48200799018|376014|32142699015|61400799027|4113699003|5113699003|55112099003|22082099003|13003099007|18002099003|16102099003|10067099003|261009223027099003|4143699003|5063699009|56012099006; X-Microsoft-Antispam-Message-Info: 9gVCRnjt2eMEITkfNaT9Wujvvg+vCZzVBxBwr5L2Llyqrzm9K84CwXGYcxcRd858GB7hH1m3F4fdHmX6NlOJBapxR2b0Ew1FKpCy8z806j2YY4jVWR4bGh7+JfmH4KtPNH5RfoLanen7Suc8D2kwAXT+5IxWufT4mfvCttxpJpgyTQgBdTm+EJngEdBIBD9Aq6xnJZHnwIZ0JyTc7AC2NNWywiwH4Y8ASAJ3Bq4xxFma8AryzcgHll4ZvMSJICcwE1to8AE+MCyEkF3NRtbNfGJn2dAi0veeT8MKfBDk0oPWzD9zggm5D8y5QTNeI68BTWHaldUEgJNBhxSWe3OswW1QMHiJHnXghLCb3kdBwdkLmrnH43iTQXTtDVdm3MA7I+N8M6/cuXni0KvwBBURv5y8UmSuKj9PkXcZ9RtVsYCLEOtegZ4NbrBD8urP/1Ksq+vU0yF5vhv9dFh8Mxh/QQm/eLmHitkLNU/U27lYTsqRTHxv/SMhHoN3PofQ8czBOeft4f/rj8irRvXH0Sh/roqQx3l/T+gUr+P4w+rl2hUlXbCwZgxAXd5OBco2n6Ga26J3H2zzlrT6lZUNRagTi3CuZrkvepv9O4cJyp7J/TJHZH24crgS30ZDtIVllVvuR7eI5+FuWr6rpvhdBzCPLFUUQ+ftC67V/scz8QEzVos/IjYVY2SFhyaOHVuuix+c8kL7yhTBX8cKQPRk8pgWLIEyZk2gXRULN7WcWD4GRa85eK69Ecl+4Tw4vinq3Jw3Mts3n3AIs+WxYCUQl55hYWx/3dx5Cxh28EWZiG9FKQBqNRDgYOXkJetUBJyL3A0J X-Forefront-Antispam-Report: CIP:69.169.224.1;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:b224-1.smtp-out.eu-central-1.amazonses.com;PTR:b224-1.smtp-out.eu-central-1.amazonses.com;CAT:NONE;SFS:(13230040)(704161411799003)(9140799003)(48200799018)(376014)(32142699015)(61400799027)(4113699003)(5113699003)(55112099003)(22082099003)(13003099007)(18002099003)(16102099003)(10067099003)(261009223027099003)(4143699003)(5063699009)(56012099006);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 3wV6TJ68o0woLNoJkgM8qdW08fl10AJXXgvtVHs8Kops+h8z9KNQL7oN/+H3Ipu/cbe17OD6cDWb3JTu3wbBgJbK/4n0YaeHD4UPal4pymRwbgu9lKXrexYeGotfNGJemluBdUxvLvj29EL8ACrWjnzoOul4Mfiay2H0cAgTW6XSsCLOjnsFmSsL0MbBlhVBRONHEy4031YPlemDjKI/bpz7ZB/es4CIQ87GsTGLMz+CwTjGxR+PNq6jfqDCmyoesSSRLU1z2VdEnapGPxl3a32SMLMAuDrbI2S5dTVBDIQ+3tmkaRqktlsL4WlGXETYLSYq17oHuAUJxNdT+frFJ1S96IviJVesl329f2cUVV5y3YMOHXCwuMYeet/Q6MnoXDYojshf8VtoIcj9J+3+waPPqF8EQ/+Tiltac+p/MYdiF02XHn2IJQajeIan3lUP X-ExternalRecipientOutboundConnectors: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Oct 2026 15:38:24.3496 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: c8fcb86e-4d2a-4490-545c-08df294004ce X-MS-Exchange-CrossTenant-Id: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-MS-Exchange-CrossTenant-AuthSource: CPH1EPF00000523.eurprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: Internet X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB4PR08MB8126 Thank you for your contribution! Sashiko AI review found 1 potential issue(= s) to consider: - [Medium] migration: vmstate_save_state_v() sets Error only for ret<0 but = prepends for any ret -- commit 8108694e711b23e4f49933352e133e7c3dec993c Author: Vladimir Sementsov-Ogievskiy migration: vmstate_save_state_v: fix double error_setg This commit avoids calling error_setg() twice on the same errp when a nested vmstate_save_state() or vmstate_save_state_v() call fails. It sets the Error only for leaf put() failures, and it changes the field-level error_setg() into error_prepend(). Link: https://lore.kernel.org/qemu-devel/20260304212303.667141-2-vsementsov= @yandex-team.ru > diff --git a/migration/vmstate.c b/migration/vmstate.c > --- a/migration/vmstate.c > +++ b/migration/vmstate.c [ ... ] > @@ -523,6 +523,9 @@ int vmstate_save_state_v(QEMUFile *f, const VMStateDe= scription *vmsd, > } else { > ret =3D inner_field->info->put(f, curr_elem, size, > inner_field, vmdesc_loo= p); > + if (ret < 0) { > + error_setg(errp, "put failed"); > + } > } [Severity: Medium] Can a positive return from put() leave *errp unset here? The new error_setg() runs only for ret < 0, but the failure check further down in vmstate_save_state_v() is a plain "if (ret)", which also runs for positive values. In-tree, put_power() in target/arm/machine.c (vmstate_powered_off) returns 1 when cpu->power_state is neither PSCI_ON nor PSCI_OFF: } else { return 1; } With that return value, no Error is created at this point. > @@ -535,8 +538,8 @@ int vmstate_save_state_v(QEMUFile *f, const VMStateDe= scription *vmsd, > } > =20 > if (ret) { > - error_setg(errp, "Save of field %s/%s failed", > - vmsd->name, field->name); > + error_prepend(errp, "Save of field %s/%s failed: ", > + vmsd->name, field->name); Is it safe to call error_prepend() on this path when *errp is NULL? error_vprepend() in util/error.c checks only for a NULL errp, then reads the message: if (!errp) { return; } ... g_string_append(newmsg, (*errp)->msg); If a caller passed a non-NULL errp, such as a local Error pointer or &error_fatal, and put_power() returned 1, would this dereference a NULL *errp and crash QEMU during migration save? Before this patch, error_setg() ran for every non-zero ret, so this case was handled. Checking the series up to its final commit, I found no change to migration/vmstate.c or migration/vmstate-types.c that addresses it. Would it work to make the leaf-put condition "if (ret)" instead of "if (ret < 0)", or otherwise ensure an Error is set before error_prepend() runs? --=20 Sashiko AI review =C2=B7 https://sashiko.vzint.dev/#/patchset/20261013-vfio= _v1-v2-0-433455c0a294@virtuozzo.com?part=3D10