mirror of
https://github.com/izzy2lost/xemu.git
synced 2026-07-06 00:20:22 -07:00
tap: fix memory leak on failure in net_init_tap()
Commit 091a6b2ac fixed most of the memory leaks in failure
paths in net_init_tap() reported by Coverity (CID 1356216),
but missed one. Fix it by deferring the allocation of
fds and vhost_fds until after the error check.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Jason Wang <jasowang@redhat.com>
This commit is contained in:
committed by
Jason Wang
parent
a023b7ac62
commit
fac7d7b1cd
@@ -788,8 +788,8 @@ int net_init_tap(const Netdev *netdev, const char *name,
|
||||
return -1;
|
||||
}
|
||||
} else if (tap->has_fds) {
|
||||
char **fds = g_new0(char *, MAX_TAP_QUEUES);
|
||||
char **vhost_fds = g_new0(char *, MAX_TAP_QUEUES);
|
||||
char **fds;
|
||||
char **vhost_fds;
|
||||
int nfds, nvhosts;
|
||||
|
||||
if (tap->has_ifname || tap->has_script || tap->has_downscript ||
|
||||
@@ -801,6 +801,9 @@ int net_init_tap(const Netdev *netdev, const char *name,
|
||||
return -1;
|
||||
}
|
||||
|
||||
fds = g_new0(char *, MAX_TAP_QUEUES);
|
||||
vhost_fds = g_new0(char *, MAX_TAP_QUEUES);
|
||||
|
||||
nfds = get_fds(tap->fds, fds, MAX_TAP_QUEUES);
|
||||
if (tap->has_vhostfds) {
|
||||
nvhosts = get_fds(tap->vhostfds, vhost_fds, MAX_TAP_QUEUES);
|
||||
|
||||
Reference in New Issue
Block a user