From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from GVXPR05CU001.outbound.protection.outlook.com (mail-swedencentralazon11023123.outbound.protection.outlook.com [52.101.83.123]) by lore.virtuozzo.com (Postfix) with ESMTPS id 5E63E8045D for ; Fri, 23 Oct 2026 16:54:37 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Nj71S6uv2M3ADuuOU7g3D5NJj5FSs8WMfGpfTN9UAmBgP/JtariOlnhPNPxkEF5aobxy89IwmxcruSJosn89yzdDusS9AF/6OnWgkhwK5iwRzbRUmxOtsC8+hCMndY1agwfTyo2BXIHUXAfe0n60N7QI96BShuoZCqqUWqv7EUPjPNpqVMdQlp20MwSjn0Ftuys7eR7IOf8xBTCYQUabplVgDKVS36I9R9ifFtiSqv8n94ZBx/+AG+Srs6buEJRQ/YQ5JwuAQ86xBll1viUkZ+tH6uAbx0nQq70kxshdNHiVEfQwagyVH9BhyapkhbKWd9DyR0gG4CKJnMUI9SGZHg== 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=JoFyWwPdl66lDBOVPUDTRl6Rzy2bcoN8Kb3N9kVDIzQ=; b=f/QaNL/2SCdttjz8SOGo7oRc/Ru8WYPMqlgwQxhKYQQmlJYLMopGX81aPicLzrh6yRHQSXdMGIfHNaUQjqpj7OxrkN9P3+CbkRQUuEb0QqgPLlrsRSgKSPyKfH1zzc9mUndhyWYtjTeddlRKjwX4NarUJ1Di/LplQUhrFOgpNlU3msqTCqq3wU5Qo5ihnkWYlhMKrG6/M5XYk/3kYVQt4LE1bk/RqVmrI8KjcMKcrb2ETqqVZeX7i11ENYmbMnGoh4vMNO7WKlHIt/DspVvCJSp8NnpwvpSEinS/QWSOTy+5KTz1VnBE/fhptdJbweNn+xR6q1GMPl70LEtgSSQv0A== 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=JoFyWwPdl66lDBOVPUDTRl6Rzy2bcoN8Kb3N9kVDIzQ=; b=g/V9rIgY4Q04lFjOGmFviXyvLLuH4LAhQzFTukLzfTKT4JhD0Wz4Nb+f/Eldfj//oiMxAFyG+3j02Sl8OsTEp7ERJX4LOUnc7qZZriwO/W5tW0I1hx5NJiv8wVd08dYqU0vbKpFrYZvwJzzbkskeX5ZwnJfABlQV9BBqopk9kihnB73Oflo8Yny9io77opXUFSpgWLgpArc8l15eiHjQQ/mHDxcW9EOHz7pnRN926vxUGg/IoWDAETKSpMpThZowwH8A95IHpirUVxEEd4SV3Gk3zq5C9LoXPPT1nLl1EMtSJBLa3YgbK/s4K9aw5VJLxAITAUVGwha7Kgkd40K6zQ== 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 AS8PR08MB9599.eurprd08.prod.outlook.com (2603:10a6:20b:619::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.546.19; Fri, 23 Oct 2026 16:54:34 +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.017; Fri, 23 Oct 2026 16:54:33 +0000 From: Andrey Drobyshev Date: Fri, 23 Oct 2026 19:53:45 +0300 Subject: [PATCH QEMU HCI-8.1 v5 08/36] migration: Plug memory leaks after migrate_set_error() Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <20261023-vfio_v1-v5-8-ba0bf3c6d122@virtuozzo.com> References: <20261023-vfio_v1-v5-0-ba0bf3c6d122@virtuozzo.com> In-Reply-To: <20261023-vfio_v1-v5-0-ba0bf3c6d122@virtuozzo.com> To: svt-core@virtuozzo.com Cc: Andrey Drobyshev X-Mailer: b4 0.16.0 X-ClientProxiedBy: VI1PR0902CA0027.eurprd09.prod.outlook.com (2603:10a6:802:1::16) To VI0PR08MB10656.eurprd08.prod.outlook.com (2603:10a6:800:20a::12) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VI0PR08MB10656:EE_|AS8PR08MB9599:EE_ X-MS-Office365-Filtering-Correlation-Id: 953ec7f5-fe6a-4029-1389-08df31264a26 X-LD-Processed: 0bc7f26d-0264-416e-a6fc-8352af79c58f,ExtAddr List-Id: svt-core@virtuozzo.com X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|23010399003|366016|52116014|376014|38350700014|56012099006|261021123027099003|261022105027099003|261009223027099003|261021121427099003|10067099003|22082099003|18002099003|5113699003; X-Microsoft-Antispam-Message-Info: FvZMyiE2DyMV9F3CnoW/VAlyf6F9uP5RswxDOARBO6IfiyLQKLx/qzdrlTNeHtNMFI+102JOYoIkRnYNraMT/bkTlVxVb/DYqPvNhNWIz4n3YUm15Kp/lOXRf1livyQNOVJEJscu8ez8HO7dZ4f/TiK4T8AAhZAbvAwOanuG7uuOeS56+gIRx+ESNGt+/k0boleAqD6cUKAtuU3ASWHXfk1SJ2fSAGRqQKExbPSRrHfUw3KrptHxL/TYBBEKufnu7aHiIbvtU1n4yhl6ArwuTjqCSGyYJnxb5K3ybnmWb8ZgklpHsQBtzfPgIC7YBBDPheYf+pdTXo+K9IAqyKQsLnOgcAGDG0I3UlKmKl6QG/ixko/12pKRts5oGkJcIFuMjC8c00dgCgsDAuOW8lpY5vRjKWpL9ByrwvGcsrTP/V2b3C+agpYUCDPmfn2o49PEL3O6LZctvtUruU5LZv/a6b025oqd0HrTsCo206q0U5hZAqhJ4FVCVYl/FevMOZO43whE24tWf9KeZa1VWbKt+Vsyc0ZKVEg047AVqxTk04cZDDibaD8tKxyOAjl3ajFDOBXhqtVTzsyuv3X3KfC96abm8HzKknNJYa6VyDqDtFc3zd++wVp/qZPY6g4eIpNSagsraDPoF0zVBuHv3AqsKqLWf14rm3RgC4wlebfwkGU= 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)(1800799024)(23010399003)(366016)(52116014)(376014)(38350700014)(56012099006)(261021123027099003)(261022105027099003)(261009223027099003)(261021121427099003)(10067099003)(22082099003)(18002099003)(5113699003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?dGFwTytEbWF3Z241VmxPWEh2RW1tNzZvMDd4Y1UvN1RtbWk2Z1dvblRKRldT?= =?utf-8?B?VGxKSEJYWjcvN2owZkNwNmw4Q1ZnanhJUkRqMzhwTGlNdThpVWlnbERSTlFN?= =?utf-8?B?ZXlaeDI4d05xd1dEZUdLaTZqZGZxeUZteFZvUyt5OTdGQjN1Nk1aVFB6R2k5?= =?utf-8?B?QmxaMzVjaVJDZ1Y3VjQ0aHg3ZnZrZDhZaWhIZGc2clJYZ0hQNkF0TFZCTFlV?= =?utf-8?B?NWljb2JEa2VhcU9sSVl6cTVtSjJiZkJncGF2eCtuQlVvVDhFcTRVemVRdlYx?= =?utf-8?B?bFhvM04wSkJzZi9PRmVCV0J3ZGVMMWViYjIvRDBHaU1qTndkWmwrNGgweDNQ?= =?utf-8?B?ZnlLQmd0MEhDMGlubnJDS01tWjhteS9uUzBVem1OS2lMdnhhUjd1cnJqOXRp?= =?utf-8?B?QzZFaG1kbzgyNkVGYVd5amhEdWMvSTZQaEJaUGpHM28vS3lmVXVoOFNaU0Na?= =?utf-8?B?SVNQYnVhZkZIMWNnbFJldTNTRUJCWEFOSVVGMW5jTkVEOVpQRVhhSko3azNu?= =?utf-8?B?bTN6YnVnRzRCT2N1U0U4OXNNbG0ydkZrM2xBL2pTd0dHNVBGdFRnRjArT21Z?= =?utf-8?B?UVdsLzFLcTdvQWVPYVZ0bXg5RGlEZmhHU0N6cHRyemw0TzJXaDJON0o0by9l?= =?utf-8?B?dzA4Qkx1dG91dVRvUEk2TFNBMWFtUE42TkhKSG9Fa0wwTW5JZG5qTFZwVDdE?= =?utf-8?B?RnVyV2g0dVpqU09jdnRhUFpiMW1oOHk3aWRpSGRRbXJqRXhuRW9IQVVONnJP?= =?utf-8?B?UkozT2puWGxXbWJkTklNTHRCZjFYN2d2bzBLOXhjY3FoMUZHTC9CUFlBSGtw?= =?utf-8?B?SnNUaHppbFZNUkJMUytEQlRUZE03NnFxMFhucW9uR0lRRDhDTVZ1U3loU0dr?= =?utf-8?B?eTh0YWJnRHpyZ2o2MUxXYkZoaVladW9QWm9kdjBtQ2FnVXdNUjJhazZGcTl5?= =?utf-8?B?eEFIbCtWNGNFd3A4N2h3QStDQnBmdWtkSVhLbFpaOHJFN2RKZlNKclJHcmkw?= =?utf-8?B?VzhxTXRSWVNvcC9Wbk0ycForUmhsZTA0S0xibzg4dktIcndzT1dJeklKMTNs?= =?utf-8?B?bTVFM2ttcHE5Qjcwcng4TnhOK2xCNWk1aHJPdldHNzZ6ZFNETno5bis2LzF5?= =?utf-8?B?bGVGYVlEVFQ4REtXenovaG5pNU1oTHEzKys1SzBsaVhTQjBGSmRqc01OWWRo?= =?utf-8?B?cGRpbUZ3YlNPUXBMSGg4bVA4YWo5eUY4UVAvS05xRUJQeTlxVU1PVmxid28w?= =?utf-8?B?b25pc3hINVRCWEhLS29naFg4Um5jN0N5TnNndzYrc3VFVmdQYXpYNklCTkIz?= =?utf-8?B?R1VnWVpwNi8rSVNIc3MwVFh1a0lnNHpsUjZGbUJBL3NvMitMRFdzR2ZjbTdx?= =?utf-8?B?WlZhcURUcXJtUjVLSjVFaVprNjVDeGZ2V2YyM1BaS3M5NXRnTzdWdnlYR0tT?= =?utf-8?B?b3ZPL0VLUVhZL2k2QVFFTnNFcEFrckM5aGtHSDAzdWZwSFhuMlhnWjJqTzVG?= =?utf-8?B?T0kwOFRyY09aM2JKNWYrKzlpeVBTODNZM1NrY0pwZW82eVRqQ1Y0QUFGTjRl?= =?utf-8?B?cUxzR2RJZkRuYmwzMzZQaUNEckk4LzVHVnNscFFjcmtJMytYMnc1ejJFMDRv?= =?utf-8?B?T2l0dktmQ2JPSHZvZDUzbkJsUHFTOGx5YTVnUzZqQnpGazlxYWhUc1BTOTB4?= =?utf-8?B?SVpnUzQybXoyMFUvOEJvZE1ZOHhVbkFoVlYwcDN1SkhFcDVqWXdOSWlWdUFt?= =?utf-8?B?RDFDUWJCWFJaSXFGTzZLYncrQUhtTkF3blBMSEVBbU1KSDQ3Q0xrdDhuWXpv?= =?utf-8?B?NVdsQUw4UTRKRTJtS3FSTGNmRlJUOGlUVThwdUJER01NQ25mSStVdEJPYTZz?= =?utf-8?B?MS9OWXdPNCtGWXYxWm9jNnBqQlNVYk5JYUdkazAxUVJRblJxRzdXSHFNRVZa?= =?utf-8?B?alJFSVQxV3RDVGNOSFBNNEEyd2ZZMFl4SkJlcy9DRGsvTkdVOW8xdXRJWEhR?= =?utf-8?B?c2lhL29wZ3diOTRpWWRiWXFkVm80Tk1KMi9vendodWVucU10THd3QjlMcmFh?= =?utf-8?B?a2V5ZGlUT0pYV3ZEWkdTd0FIbDJxeU44Y1pwSXV5dklpemxmcWdGaW0xc2xP?= =?utf-8?B?QU1aSWliV1pPNDZXVEhHZ1h1MEJqMnh1MnYvelpFdGpJSjcvNG8yYmNIWWpC?= =?utf-8?B?QjZaeGhnVnc1Q0pSUFgwTHF4MU1zd3ZuZEhVNlFFZ0NWOFpiVVhlOFgzVEp5?= =?utf-8?B?cjVmUm5JY2g3WkZnNElDdlEzWTdkNnJTMkdPSU9RS1dITENtZ3k4cWNTZVBj?= =?utf-8?B?bXlESU1xbUlmMVhwY3pYNWZiNE1xL1Yzb09yT0g1RHZFWHM2eng4cnFqbDlS?= =?utf-8?Q?xkZw2SuJUfRGYhMs=3D?= X-Auto-Response-Suppress: DR, OOF, AutoReply X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-Network-Message-Id: 953ec7f5-fe6a-4029-1389-08df31264a26 X-MS-Exchange-CrossTenant-AuthSource: VI0PR08MB10656.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Oct 2026 16:54:24.2167 (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: 3KI2PaTFj/xIjtphdlRWoMD22chTMczXvPcmpXs639rLXTu6C0AQh7wcMa9jO9Tmcv8xE2pp8vtS2dqrjW+XGny2HKKCXzIsOCnJ/fY6t7c= X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB9599 From: Markus Armbruster migrate_set_error(s, err) stores a copy of @err in @s. The original @err is not freed. Most callers free it immediately. Some callers free it later, or pass it on. And some leak it. Fix those. Perhaps migrate_set_error(s, err) should take ownership of @err. The callers that free it immediately would become simpler, and avoid a copy and a deallocation. The others would have to pass error_copy(err). andrey.drobyshev: This commit is cherry-picked as-is, with no modifications, from the upstream commit 93817ec39656. Signed-off-by: Markus Armbruster Link: https://lore.kernel.org/r/20251115083500.2753895-2-armbru@redhat.com Signed-off-by: Peter Xu --- migration/cpr-exec.c | 3 ++- migration/multifd.c | 2 ++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/migration/cpr-exec.c b/migration/cpr-exec.c index d4214e6b379..5a885422154 100644 --- a/migration/cpr-exec.c +++ b/migration/cpr-exec.c @@ -233,11 +233,12 @@ static void cpr_exec_cb(void *opaque) error_report_err(error_copy(err)); migrate_set_state(&s->state, s->state, MIGRATION_STATUS_FAILED); migrate_set_error(s, err); + error_free(err); + err = NULL; /* Note, we can go from state COMPLETED to FAILED */ migration_call_notifiers(MIG_EVENT_PRECOPY_FAILED, NULL); - err = NULL; if (!migration_block_activate(&err)) { /* error was already reported */ error_free(err); diff --git a/migration/multifd.c b/migration/multifd.c index 5a723ae25d2..e369421b3ff 100644 --- a/migration/multifd.c +++ b/migration/multifd.c @@ -966,6 +966,7 @@ bool multifd_send_setup(void) if (!multifd_new_send_channel_create(p, &local_err)) { migrate_set_error(s, local_err); + error_free(local_err); ret = -1; } } @@ -990,6 +991,7 @@ bool multifd_send_setup(void) ret = multifd_send_state->ops->send_setup(p, &local_err); if (ret) { migrate_set_error(s, local_err); + error_free(local_err); goto err; } assert(p->iov); -- 2.47.1