qemu-trivial
[Top][All Lists]
Advanced

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

Re: [Qemu-trivial] [PATCH] rocker: Fix memory leak reported by coverity


From: zhanghailiang
Subject: Re: [Qemu-trivial] [PATCH] rocker: Fix memory leak reported by coverity
Date: Tue, 23 Jun 2015 13:46:08 +0800
User-agent: Mozilla/5.0 (Windows NT 6.1; rv:31.0) Gecko/20100101 Thunderbird/31.1.1

On 2015/6/23 13:23, Scott Feldman wrote:
On Mon, Jun 22, 2015 at 6:31 PM, zhanghailiang
<address@hidden> wrote:
Signed-off-by: zhanghailiang <address@hidden>
---
  hw/net/rocker/rocker.c | 1 +
  1 file changed, 1 insertion(+)

diff --git a/hw/net/rocker/rocker.c b/hw/net/rocker/rocker.c
index 4d25842..d06116e 100644
--- a/hw/net/rocker/rocker.c
+++ b/hw/net/rocker/rocker.c
@@ -103,6 +103,7 @@ RockerSwitch *qmp_query_rocker(const char *name, Error 
**errp)
      if (!r) {
          error_set(errp, ERROR_CLASS_GENERIC_ERROR,
                    "rocker %s not found", name);
+        g_free(rocker);
          return NULL;
      }

I'll post a patch to fix this one this way, to report alloc failure:


Yes, this is another way to fix this problem~

--- a/hw/net/rocker/rocker.c
+++ b/hw/net/rocker/rocker.c
@@ -96,7 +96,7 @@ World *rocker_get_world(Rocker *r, enum
rocker_world_type type)

  RockerSwitch *qmp_query_rocker(const char *name, Error **errp)
  {
-    RockerSwitch *rocker = g_malloc0(sizeof(*rocker));
+    RockerSwitch *rocker;
      Rocker *r;

      r = rocker_find(name);
@@ -106,6 +106,12 @@ RockerSwitch *qmp_query_rocker(const char *name,
Error **errp)
          return NULL;
      }

+    rocker = g_malloc0(sizeof(*rocker));

It's unnecessary to check the return value of 'g_malloc0', because it only
return NULL when the size is 0, obviously, here it is not 
zero.(sizeof(*rocker)).

+    if (!rocker) {
+        error_set(errp, ERROR_CLASS_GENERIC_ERROR, "out-of-memory");
+        return NULL;
+    }
+







reply via email to

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