From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from DUZPR83CU001.outbound.protection.outlook.com (mail-northeuropeazon11022124.outbound.protection.outlook.com [52.101.66.124]) by lore.virtuozzo.com (Postfix) with ESMTPS id A455D802A5 for ; Tue, 20 Oct 2026 16:30:56 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=uM5VJoq0pMl82+/KesyBevrnWGjm2l1hC2WCWuMjGR0xx1Jnv6aJNpmMACNpJH5y7gZrsbLxFZGXpukH2jVFoHsQCbYEpYNROejUuuVocDBiYu6krmkXtkR+JAj/2/TQXxyaGRaG06lbKkjsyxogJFfbC7CQWQPet9tGhHPigvhu35edenr2s0SXQNOFu4lwSNdfH9iaG6Oa8PGy6KqiKxeYfG9jeEAI3JHxxqXdoUcrxFDnIXqoeMQyrZ2GLWp0SK+caAkkMVJVLicyapBsKU73KhwofFRDpzAO3/TPYnMUX2+wDoZmwFW4XjBLGCShQeRgFAKW9lHRRNbh1N0tJg== 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=hgR4PQyl68zXQ5TaGHJLx3HoW3gmoGNqYlzn8dtYtNA=; b=MijCtuOAkUUXCBakQPn6ruu46TPWNmdmms7h7g9WFG9YQDlmXr7pEUKcL6+Sa26BJokxWAmvqIki17qqUOkKQy73KMG+kCX6eeW1uUHkI2QvhidabXq1TP4Q8kqzQAq2JesL3Qc2aOSNPha9npi7lbasETyMzuNNt0uG4e+bth9oWQEMRZ51Iq1H4T1PHGo1OVyMtllhiAeBCzfFRz/Kn0cMgxErjj2duQBEotDVuPg1zj/hclAlvrJYkgq84kHelx8d1jd2zQyFU6h/3/GX1bLtRTyox0pJzEYXputMvTPiUGxTQxbvpGXEIjta/b1joGL8FvrZl3WQA/Zx35YCjw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=virtuozzo.com; dmarc=pass action=none header.from=virtuozzo.com; dkim=pass header.d=virtuozzo.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=virtuozzo.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=hgR4PQyl68zXQ5TaGHJLx3HoW3gmoGNqYlzn8dtYtNA=; b=pXJAQQd62tV9qJJIK4C3uNzQiUAr/Z+IdrYUP+UsLcvM1ztTca6UKlvrZkxhzLhPFbCHkyE7bhbC8f6MSdRcrz9xmRx9sVAaj1Zq9KHLdjxkWpzEcP8D1QUJ3IceTHF7eaxdsfXSFGtO9VBOdVDeqxAAKPsaY0HarUwLmifhMTVYHy81gemw5gOn4W1Gr6c7mJw4xZKB3/n9w2Wj5Lvt6YzqCK5qIhG8Ail2Uq97nev9lPJ2bec5tu1Y7Bo8SFKxbOtab2m1Bs1XJWG/H6pFuWuRiX7JZPEzgRi+hP6WrgWXCq8WpRvvH4Bo27VzX7GSbCHGogXQQFRPKMX94HM47A== Authentication-Results: mx.microsoft.com 1; dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=virtuozzo.com; Received: from VI0PR08MB10656.eurprd08.prod.outlook.com (2603:10a6:800:20a::12) by VI0PR08MB10683.eurprd08.prod.outlook.com (2603:10a6:800:208::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.546.14; Tue, 20 Oct 2026 16:30:55 +0000 Received: from VI0PR08MB10656.eurprd08.prod.outlook.com ([fe80::4e37:b189:ddcd:3dd8]) by VI0PR08MB10656.eurprd08.prod.outlook.com ([fe80::4e37:b189:ddcd:3dd8%7]) with mapi id 15.21.0546.012; Tue, 20 Oct 2026 16:30:55 +0000 From: Andrey Drobyshev Date: Tue, 20 Oct 2026 19:30:44 +0300 Subject: [PATCH QEMU HCI-8.1 v4 04/31] migration/cpr-exec: require a file or exec migration URI Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <20261020-vfio_v1-v4-4-83a5668230e5@virtuozzo.com> References: <20261020-vfio_v1-v4-0-83a5668230e5@virtuozzo.com> In-Reply-To: <20261020-vfio_v1-v4-0-83a5668230e5@virtuozzo.com> To: svt-core@virtuozzo.com Cc: Andrey Drobyshev X-Mailer: b4 0.16.0 X-ClientProxiedBy: VIUP296CA0056.AUTP296.PROD.OUTLOOK.COM (2603:10a6:800:34b::14) To VI0PR08MB10656.eurprd08.prod.outlook.com (2603:10a6:800:20a::12) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VI0PR08MB10656:EE_|VI0PR08MB10683:EE_ X-MS-Office365-Filtering-Correlation-Id: d0caee7a-5936-46c1-a48d-08df2ec78216 X-LD-Processed: 0bc7f26d-0264-416e-a6fc-8352af79c58f,ExtAddr 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|52116014|376014|366016|23010399003|1800799024|261009223027099003|10067099003|5113699003|22082099003|18002099003|56012099006|5023799004|38350700014; X-Microsoft-Antispam-Message-Info: maS1Y/+Ry9xXJMxnXoQT+sOwZIEZryLSy6CxQAuiSmVl08jwW9COq+ZnvXkbikUllx3xH8S+f7hSSd8pzLRsaC8YGACU3p2mlwvfezj7e53dO6cTbHAGSxZlWUKq1kw/WqF3vDjXl38k1veWLrro4GPknBylYYctjq/VMA1CEcIUhUtBR7jCitz0i8/freOtnMhcI+nfohZyGllkcOTIwoWBAaOAhTrVluypYgtLhsUtRT3FhFBdB5JhySN9z5aCgtCPylBL7OUtdug/IWrTfaYF7yJZMWnGXarF5tqe8qGD9mutkLN7fGs9UTq5+qhSwsieWPIrFwhS0U/FSkTF5HzSS1DCkfnCg2LViDp2CzA4/M9o4kusTkGJlAa5Ei4Emwj6EFckp059SjuT72hdv5zgr4OrC9ade8vPzJixaoMK3FsnBq1cFNoRXNlJwTd0VySWGVpUy5LKq2Dci2m4Rdmq7wObEpkvrDXAXWKlqiFHDphwnlj6/qxDDZkt9/Nmsdh1+0Zy++8J3lrprHD3/O9/NuKiUDCUJibVv7vmKzCzgn14AYae5EAJElDXB3avTMbOh3hlHp+scUTnFr4OT+/B75nQ/BxPHJCi4kxWABTMhknTGtQI9ozgSla+MbO8NzLypGRcURnPCMjYjQfIsrs01wAcnGTmuCrKgFV8Uq1MArPevgptqNHSi+XIcjTHOAsWBiSD+ZgSOIoZ2j4b9FqpZUxBfUdTtyUAUZoaR5A= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI0PR08MB10656.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(52116014)(376014)(366016)(23010399003)(1800799024)(261009223027099003)(10067099003)(5113699003)(22082099003)(18002099003)(56012099006)(5023799004)(38350700014);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?NEdKcmRyTCtldE02Ym0wRWVWdUxsRG1HMjQxSUpsNm9Ua1ZiWXJRQXl2NzZa?= =?utf-8?B?a0pmdGtMOGJZWHJTcGFLMllyd09jRnZobHNsRUM0Z0NBMmxoQi9iMGZHNHZk?= =?utf-8?B?SFQxZVJxaVJrSEtZSlVLdWswYnNPY1drUldVSXE5YlNZMVJ0ZDBYcTZPaXNo?= =?utf-8?B?L0pVSXBaQllxbERsK3FQTWFTT0RJZDVJTmlONCs5c3V1V2NyYXZwdCtVV1p4?= =?utf-8?B?UkVNV2NQc2w3ckp5TUNKS2ZtcC9xTFlVdDZYcWpKV2lKWWEzcHNnWG82bVI2?= =?utf-8?B?TEJGSEZxbGlhTGM2blpHTXNIOFozSmRHMmZ0Nnh3VU9DZytkWlVuNkxDeTJM?= =?utf-8?B?MlFITFhsZEpPYThiQ2J6dzMvaTBKcSt3RVpCNTd3UzY2ZXVPTEkrVVZDcUlP?= =?utf-8?B?SDlXSUNIZ3FkSlhlU1lNL0hnSC9nVWdpYkUxTVNyK1VHT0JkekRtbVkyNE0w?= =?utf-8?B?OEtZTEJxT2VzZ2RHN0V3Z0FYdHhVblJxTXdPd1ZSSXJYbzd4U3pxWlNKc21a?= =?utf-8?B?SUFTaVZQRitOYUZMZTBzcUw0TWtodEVhNFFXQisxOFRTNTkrdWxEZWlqY0FZ?= =?utf-8?B?V0h5aGdEa1ZNamV1MFVGRFA1M2hlUU84eXovQ1VLcHVQd3ZBLy90S2tScEJn?= =?utf-8?B?eERtNWZTZ1h0aWg5MGRlTFlndFFGaUJyb0txdVBVbFVwRXhjUEJocTczSjlo?= =?utf-8?B?V21XSTFjN3NaU2pnS3Bma1JqYmk3TlU0a0xkZzdJWU5zYUVQSDZ6dFNDQW03?= =?utf-8?B?YzJxNTkyRElMbEZNQVJvRGtzZjlkWStlc1JYK045Q0JBWDhOekM1OVByVjlZ?= =?utf-8?B?Tk9JNFRnclVEVmIyNk5XZk5TV243SDZMN09PR1dXRDE4ME0yV0lRd1krS1Jm?= =?utf-8?B?RzBVRXBJM2hrdHNoQ2FEcXFTTW5MQnYvVlpDVTh2bkE0VWJjZnIyRjZ1SkhY?= =?utf-8?B?OGtWN1NYU0l3akJIbHJtTlVyckhMQ3AraG5pL1ZoWkNyY3FYSDR6dnJicTBQ?= =?utf-8?B?TFhOMVoyL3ZINmFValhEVkF6NmNWb0YrNU40bDM3bytoZFlzYzgzUDlKaWZu?= =?utf-8?B?UU1HRGlRMG1sMGpDUVB6c29oaEEycUgxUFF5aFV6ME9temlZaElOb2ptYzl4?= =?utf-8?B?NGIvUElsd3lJYVdjYlRYaUFJK2pDWjVuMzlFZGRJUlp1S2x2V1VBRkEvYU1J?= =?utf-8?B?WG9CNnhQWVJrZ25KSTVvMGpzR2JMVDRKTnVpNnhtKzhDSDUrWUNYVXA0akd2?= =?utf-8?B?ZTNjQ0MxbFlpQzBSclpyTFJVTy8zZmJyblBKcG9aQVRBdzZvdjJqck5icEhK?= =?utf-8?B?Z2hGMEUvTmhZUUxmS1JYazAvWFFKRDN6N01nblh1dTBSZVU0dCtNb2ZzTkxk?= =?utf-8?B?Y3JIUlNYc1M5dFpOOUo1ZFBSMDYvZ0ZTeVcwdjNEWFdkSDZUK2hEZzR1RGRq?= =?utf-8?B?QVQ1T3lvcVUrYUV0YXRDd0pGMlUvM3QyazFaRnFnU3ZvWENXZWFYREhTNTBB?= =?utf-8?B?YmdHM1RWTkhrZmx3dkNPSHRER0FsNUR0dDVleFY0UDQ2Mm9aTWtBaXFlek5r?= =?utf-8?B?S09SdThCdHBrYVM4eEowR0VhZUVaYitPMGUwM09Sc2dUbkNJdnVlczE5VHY4?= =?utf-8?B?VVRWRkltT2VJOVE5SEhqYWxWYiswSlRibndBbnljSzNZVnVLcFF1bURQSm80?= =?utf-8?B?QVFha3gwd3kyc2M3NU8wM2dmOFNPL1ZOOUJJVDZZUURFNjZFTmdhcW9lK0Nu?= =?utf-8?B?UHJhZ3ptMUxYTk5hcktIbXZ4SGVwVmVHOHpkWDc2dDhSZVg1TnFFelR4NEw1?= =?utf-8?B?UmdJbEtuM2FRUlQzRVA5MXB2dVQzemJObW9PYmpJYTRIRWloM1JCcnZaQTEr?= =?utf-8?B?MGpHWTZJcnRaM1h0dXhYVnlUaHMwakgzV1NuOFptemU4bzhYaVhKRVJta0M5?= =?utf-8?B?NUdQQjgwdlViMzB4elUveDVvRnlMS3JRTUwrdnZXTGxya09kMnp5eDBxS0VG?= =?utf-8?B?b3RoWk8wN0hkVTIvbStxU0YvOWR6eEl6a3JDNm5WTytJVXVsUFZDalNpUmVK?= =?utf-8?B?L3dmaU9qdDRiRWxZellnT0pIQTIvWnhJZFllYzNNRjBKWlpSL3N3cEdKeEIr?= =?utf-8?B?RURYYWNFMFNtUzlIbGdVL3V0RnNnRGxrSkw5TC9NUitJNVFXZEhRUGxaRTB2?= =?utf-8?B?Y2ZzUzdLSFJDVVpZSVQ3QkJSS25tamxkUGxhZEVFZ3dtN3pCTHMwNWZERklG?= =?utf-8?B?L0pWbjZEZGJUMklIWlhvNm9INStoM0UzUEI3clhEYllWMFZBdXZGYzVBcXFO?= =?utf-8?B?TUNyTDFJSFcySlVrSS80MDRoZGtYSURqMm80R0IyS0VieEFXQytZT1duWmxZ?= =?utf-8?Q?1opsYXSKCekOHhJo=3D?= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-Network-Message-Id: d0caee7a-5936-46c1-a48d-08df2ec78216 X-MS-Exchange-CrossTenant-AuthSource: VI0PR08MB10656.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Oct 2026 16:30:52.6543 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: QsDDWvoa3jI4VmV9F0KzH5tKQ/zyMX5O1ZyeJDQ8Jf0CrULmn97uMQMLxOFyVZjgY4RVcHNSMRq7FFnIVj0EHR7r/J4AopZf5/FuGeAgpb0= X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI0PR08MB10683 cpr-exec writes the device state to the migration URI and new QEMU reads it back after the exec, so the URI must capture the data: a file, or an exec command that stores it. Nothing checks that. With a socket URI, e.g. a save or a live migration issued while the 'mode' parameter is left at cpr-exec after a failed qemu-update, QEMU sends a stream without the guest RAM to the peer, execs the stale cpr-exec command, and the VM is lost. Refuse cpr-exec with anything but a file or exec URI, the two types the CPR documentation allows. Fixes: a3eae205c601 ("migration: cpr-exec mode") Signed-off-by: Andrey Drobyshev --- migration/migration.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/migration/migration.c b/migration/migration.c index 2f8ef20c036..39f70328fc7 100644 --- a/migration/migration.c +++ b/migration/migration.c @@ -258,6 +258,14 @@ migration_channels_and_transport_compatible(MigrationAddress *addr, return false; } + if (migrate_mode() == MIG_MODE_CPR_EXEC && + addr->transport != MIGRATION_ADDRESS_TYPE_FILE && + addr->transport != MIGRATION_ADDRESS_TYPE_EXEC) { + error_setg(errp, + "cpr-exec mode requires a file or exec migration URI"); + return false; + } + return true; } -- 2.47.1