qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH] tap: fix memory leak on failure in net_init_tap


From: Jason Wang
Subject: Re: [Qemu-devel] [PATCH] tap: fix memory leak on failure in net_init_tap()
Date: Wed, 11 Jan 2017 11:08:16 +0800
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.5.1



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 <address@hidden>
---
  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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]