summaryrefslogtreecommitdiff
path: root/app-emulation/libvirt/files/libvirt-8.1.0-libxl-Fix-libvirtd-crash-on-domain-restore.patch
blob: f6116aa535d22d8b7ddd809cf819dafeddc05c48 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
From 454b927d1e33a1fe9dca535db2c97300fdae62cc Mon Sep 17 00:00:00 2001
Message-Id: <454b927d1e33a1fe9dca535db2c97300fdae62cc.1646730306.git.mprivozn@redhat.com>
From: Jim Fehlig <jfehlig@suse.com>
Date: Thu, 17 Feb 2022 11:48:13 -0700
Subject: [PATCH] libxl: Fix libvirtd crash on domain restore
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Commit cc2a3c2a94 missed one case in the libxl driver where virDomainDef
is returned from libxlDomainSaveImageOpen and a g_steal_pointer is needed.
Without it, the virDomainDef object is freed and the driver crashes later
in the restore process when accessing the object.

Signed-off-by: Jim Fehlig <jfehlig@suse.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
---
 src/libxl/libxl_domain.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/libxl/libxl_domain.c b/src/libxl/libxl_domain.c
index c91e531a9a..ee031267ca 100644
--- a/src/libxl/libxl_domain.c
+++ b/src/libxl/libxl_domain.c
@@ -811,7 +811,7 @@ libxlDomainSaveImageOpen(libxlDriverPrivate *driver,
                                         VIR_DOMAIN_DEF_PARSE_SKIP_VALIDATE)))
         goto error;
 
-    *ret_def = def;
+    *ret_def = g_steal_pointer(&def);
     *ret_hdr = hdr;
 
     return fd;
-- 
2.34.1