Skip to content

Commit bdd5363

Browse files
Marcus SorensenMarcus Sorensen
andauthored
Qemu migration hook: check for source length before using element 0 (#7482)
Co-authored-by: Marcus Sorensen <mls@apple.com>
1 parent cb0874f commit bdd5363

1 file changed

Lines changed: 16 additions & 14 deletions

File tree

agent/bindir/libvirtqemuhook.in

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -61,21 +61,23 @@ def handleMigrateBegin():
6161
try:
6262
domain = parse(sys.stdin)
6363
for interface in domain.getElementsByTagName("interface"):
64-
source = interface.getElementsByTagName("source")[0]
65-
bridge = source.getAttribute("bridge")
66-
if isOldStyleBridge(bridge):
67-
vlanId = bridge.replace("cloudVirBr", "")
68-
phyDev = getGuestNetworkDevice()
69-
elif isNewStyleBridge(bridge):
70-
vlanId = re.sub(r"br(\w+)-", "", bridge)
71-
phyDev = re.sub(r"-(\d+)$", "" , re.sub(r"^br", "" ,bridge))
72-
netlib = networkConfig()
73-
if not netlib.isNetworkDev(phyDev):
64+
sources = interface.getElementsByTagName("source")
65+
if sources.length > 0:
66+
source = interface.getElementsByTagName("source")[0]
67+
bridge = source.getAttribute("bridge")
68+
if isOldStyleBridge(bridge):
69+
vlanId = bridge.replace("cloudVirBr", "")
7470
phyDev = getGuestNetworkDevice()
75-
else:
76-
continue
77-
newBrName = "br" + phyDev + "-" + vlanId
78-
source.setAttribute("bridge", newBrName)
71+
elif isNewStyleBridge(bridge):
72+
vlanId = re.sub(r"br(\w+)-", "", bridge)
73+
phyDev = re.sub(r"-(\d+)$", "" , re.sub(r"^br", "" ,bridge))
74+
netlib = networkConfig()
75+
if not netlib.isNetworkDev(phyDev):
76+
phyDev = getGuestNetworkDevice()
77+
else:
78+
continue
79+
newBrName = "br" + phyDev + "-" + vlanId
80+
source.setAttribute("bridge", newBrName)
7981
print(domain.toxml())
8082
except:
8183
pass

0 commit comments

Comments
 (0)