Qemu migration hook: check for source length before using element 0 (#7482)

Co-authored-by: Marcus Sorensen <mls@apple.com>
This commit is contained in:
Marcus Sorensen 2023-05-08 00:29:42 -06:00 committed by GitHub
parent cb0874f5b9
commit bdd5363314
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 16 additions and 14 deletions

View File

@ -61,21 +61,23 @@ def handleMigrateBegin():
try:
domain = parse(sys.stdin)
for interface in domain.getElementsByTagName("interface"):
source = interface.getElementsByTagName("source")[0]
bridge = source.getAttribute("bridge")
if isOldStyleBridge(bridge):
vlanId = bridge.replace("cloudVirBr", "")
phyDev = getGuestNetworkDevice()
elif isNewStyleBridge(bridge):
vlanId = re.sub(r"br(\w+)-", "", bridge)
phyDev = re.sub(r"-(\d+)$", "" , re.sub(r"^br", "" ,bridge))
netlib = networkConfig()
if not netlib.isNetworkDev(phyDev):
sources = interface.getElementsByTagName("source")
if sources.length > 0:
source = interface.getElementsByTagName("source")[0]
bridge = source.getAttribute("bridge")
if isOldStyleBridge(bridge):
vlanId = bridge.replace("cloudVirBr", "")
phyDev = getGuestNetworkDevice()
else:
continue
newBrName = "br" + phyDev + "-" + vlanId
source.setAttribute("bridge", newBrName)
elif isNewStyleBridge(bridge):
vlanId = re.sub(r"br(\w+)-", "", bridge)
phyDev = re.sub(r"-(\d+)$", "" , re.sub(r"^br", "" ,bridge))
netlib = networkConfig()
if not netlib.isNetworkDev(phyDev):
phyDev = getGuestNetworkDevice()
else:
continue
newBrName = "br" + phyDev + "-" + vlanId
source.setAttribute("bridge", newBrName)
print(domain.toxml())
except:
pass