mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-03-07 17:28:15 +00:00
networkRunHook: Run hook only if possible
Currently, networkRunHook() is called in networkAllocateActualDevice and friends. These functions, however, doesn't necessarily work on networks, For example, if domain's interface is defined in this fashion: <interface type='bridge'> <mac address='52:54:00:0b:3b:16'/> <source bridge='virbr1'/> <model type='rtl8139'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x09' function='0x0'/> </interface> The networkAllocateActualDevice jumps directly onto 'validate' label as the interface is not type of 'network'. Hence, @network is left initialized to NULL and networkRunHook(network, ...) is called. One of the things that the hook function does is dereference @network. Soupir. Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
This commit is contained in:
parent
e6dcb0e2a1
commit
83c404ff9b
@ -150,6 +150,12 @@ networkRunHook(virNetworkObjPtr network,
|
||||
int ret = -1;
|
||||
|
||||
if (virHookPresent(VIR_HOOK_DRIVER_NETWORK)) {
|
||||
if (!network) {
|
||||
VIR_DEBUG("Not running hook as @network is NULL");
|
||||
ret = 0;
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
virBufferAddLit(&buf, "<hookData>\n");
|
||||
virBufferAdjustIndent(&buf, 2);
|
||||
if (virNetworkDefFormatBuf(&buf, network->def, 0) < 0)
|
||||
|
Loading…
x
Reference in New Issue
Block a user