Message ID | 1484076114-5594-1-git-send-email-peter.maydell@linaro.org |
---|---|
State | Accepted |
Commit | fac7d7b1cdb21f921d7ac396365f5e920ef03096 |
Headers | show |
On 2017年01月11日 03:21, Peter Maydell wrote: > 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> > --- > net/tap.c | 7 +++++-- > 1 file changed, 5 insertions(+), 2 deletions(-) > > diff --git a/net/tap.c b/net/tap.c > index b6896a7..6248e85 100644 > --- a/net/tap.c > +++ b/net/tap.c > @@ -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); Applied to -net. Thanks
diff --git a/net/tap.c b/net/tap.c index b6896a7..6248e85 100644 --- a/net/tap.c +++ b/net/tap.c @@ -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);
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> --- net/tap.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) -- 2.7.4