From: Dan Ben Yosef <[email protected]> Call return without freeing the buffer.
Signed-off-by: Dan Ben Yosef <[email protected]> Signed-off-by: Hal Rosenstock <[email protected]> --- src/ibtracert.c | 10 +++++++--- 1 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/ibtracert.c b/src/ibtracert.c index 5800e40..cc0ac98 100644 --- a/src/ibtracert.c +++ b/src/ibtracert.c @@ -567,13 +567,15 @@ static Node *find_mcpath(ib_portid_t * from, int mlid) if (from->drpath.cnt > 0) path->drpath.cnt--; } else { - if (!(port = calloc(1, sizeof(Port)))) + if (!(port = calloc(1, sizeof(Port)))) { IBERROR("out of memory"); - + return 0; + } if (get_port(port, i, path) < 0) { IBWARN ("can't reach node %s port %d", portid2str(path), i); + free(port); return 0; } @@ -585,8 +587,10 @@ static Node *find_mcpath(ib_portid_t * from, int mlid) link_port(port, node); #endif - if (extend_dpath(&path->drpath, i) < 0) + if (extend_dpath(&path->drpath, i) < 0) { + free(port); return 0; + } } if (!(remotenode = calloc(1, sizeof(Node)))) -- 1.7.8.2 -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
