From f2d65841895d15dada68d303dca56a505caec6c4 Mon Sep 17 00:00:00 2001 From: Gilles Gouaillardet Date: Thu, 24 Nov 2016 13:18:24 +0900 Subject: [PATCH] grpcomm/base: plug misc memory leaks - add a destructor to orte_grpcomm_caddy_t in order to plug a memory leak - plug a memory leak in barrier_release() Signed-off-by: Gilles Gouaillardet --- orte/mca/grpcomm/base/grpcomm_base_stubs.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/orte/mca/grpcomm/base/grpcomm_base_stubs.c b/orte/mca/grpcomm/base/grpcomm_base_stubs.c index 301cd8736a..8c13dfb37d 100644 --- a/orte/mca/grpcomm/base/grpcomm_base_stubs.c +++ b/orte/mca/grpcomm/base/grpcomm_base_stubs.c @@ -13,6 +13,8 @@ * Copyright (c) 2011-2016 Los Alamos National Security, LLC. All rights * reserved. * Copyright (c) 2016 Intel, Inc. All rights reserved. + * Copyright (c) 2017 Research Organization for Information Science + * and Technology (RIST). All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -69,9 +71,15 @@ static void gccon(orte_grpcomm_caddy_t *p) p->cbfunc = NULL; p->cbdata = NULL; } +static void gcdes(orte_grpcomm_caddy_t *p) +{ + if (NULL != p->buf) { + OBJ_RELEASE(p->buf); + } +} static OBJ_CLASS_INSTANCE(orte_grpcomm_caddy_t, opal_object_t, - gccon, NULL); + gccon, gcdes); int orte_grpcomm_API_xcast(orte_grpcomm_signature_t *sig, orte_rml_tag_t tag, @@ -165,6 +173,7 @@ static void allgather_stub(int fd, short args, void *cbdata) return; } coll = orte_grpcomm_base_get_tracker(cd->sig, true); + OBJ_RELEASE(cd->sig); coll->cbfunc = cd->cbfunc; coll->cbdata = cd->cbdata;