mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-01-04 20:15:19 +00:00
util: Avoid libvirtd crash in virNetDevTapCreate
In fact, the 'tapfd' is always NULL, the function 'virNetDevTapCreate()' hasn't
assign 'fd' to 'tapfd', when the function 'virNetDevSetMAC()' is failed then
goto 'error' label, finally, the VIR_FORCE_CLOSE() will deref a NULL 'tapfd'.
* util/virnetdevtap.c (virNetDevTapCreateInBridgePort): fix a NULL pointer derefing.
* How to reproduce?
$ cat > /tmp/net.xml <<EOF
<network>
<name>test</name>
<forward mode='nat'/>
<bridge name='br1' stp='off' delay='1' />
<mac address='00:00:00:00:00:00'/>
<ip address='192.168.100.1' netmask='255.255.255.0'>
<dhcp>
<range start='192.168.100.2' end='192.168.100.254' />
</dhcp>
</ip>
</network>
EOF
$ virsh net-define /tmp/net.xml
$ virsh net-start test
error: Failed to start network brTest
error: End of file while reading data: Input/output error
Signed-off-by: Alex Jia <ajia@redhat.com>
(cherry picked from commit 5ee18aaa57
)
This commit is contained in:
parent
d070e1d1bc
commit
6bbfd92d22
@ -341,7 +341,8 @@ int virNetDevTapCreateInBridgePort(const char *brname,
|
||||
return 0;
|
||||
|
||||
error:
|
||||
VIR_FORCE_CLOSE(*tapfd);
|
||||
if (tapfd)
|
||||
VIR_FORCE_CLOSE(*tapfd);
|
||||
|
||||
return errno;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user