Free smp object in case of send_smp() failure - it is not on the send
list already and not tracked anymore.

Signed-off-by: Sasha Khapyorsky <[email protected]>
---
 infiniband-diags/libibnetdisc/src/query_smp.c |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

diff --git a/infiniband-diags/libibnetdisc/src/query_smp.c 
b/infiniband-diags/libibnetdisc/src/query_smp.c
index 08e3ef7..e5a8f06 100644
--- a/infiniband-diags/libibnetdisc/src/query_smp.c
+++ b/infiniband-diags/libibnetdisc/src/query_smp.c
@@ -96,8 +96,10 @@ static int process_smp_queue(smp_engine_t * engine)
                if (!smp)
                        return 0;
 
-               if ((rc = send_smp(smp, engine->ibmad_port)) != 0)
+               if ((rc = send_smp(smp, engine->ibmad_port)) != 0) {
+                       free(smp);
                        return rc;
+               }
                engine->num_smps_outstanding++;
                cl_qmap_insert(&engine->smps_on_wire, (uint32_t) smp->rpc.trid,
                               (cl_map_item_t *) smp);
-- 
1.7.0.4

--
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

Reply via email to