[ovs-dev] [PATCH 1/2] ovs-router: fix memory leak reported by valgrind.

Andy Zhou azhou at ovn.org
Wed Feb 8 07:33:10 UTC 2017


On Tue, Feb 7, 2017 at 10:41 PM, William Tu <u9012063 at gmail.com> wrote:
> Valgrind testcase 772: appctl - route/lookup6 reports the
> following definitely lost:
>   xmalloc (util.c:112)
>   miniflow_alloc (flow.c:2500)
>   minimatch_init (match.c:1387)
>   rt_entry_delete (ovs-router.c:274)
>   ovs_router_del (ovs-router.c:384)
>   process_command (unixctl.c:313)
>
> Signed-off-by: William Tu <u9012063 at gmail.com>
> ---
>  lib/ovs-router.c | 1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/lib/ovs-router.c b/lib/ovs-router.c
> index d98de20..53fb834 100644
> --- a/lib/ovs-router.c
> +++ b/lib/ovs-router.c
> @@ -280,6 +280,7 @@ rt_entry_delete(uint32_t mark, uint8_t priority,
>          res = __rt_entry_delete(cr);
>          ovs_mutex_unlock(&mutex);
>      }
> +    minimatch_destroy(CONST_CAST(struct minimatch *, &rule.match));
>      return res;
>  }
>

Acked-by: Andy Zhou <azhou at ovn.org>,

May be this can be easier to read?

diff --git a/lib/ovs-router.c b/lib/ovs-router.c
index d98de20..794fdde 100644
--- a/lib/ovs-router.c
+++ b/lib/ovs-router.c
@@ -280,6 +280,9 @@ rt_entry_delete(uint32_t mark, uint8_t priority,
         res = __rt_entry_delete(cr);
         ovs_mutex_unlock(&mutex);
     }
+
+    cls_rule_destroy(&rule);
     return res;
 }


More information about the dev mailing list