diff --git a/libibnetdisc/ibnetdisc.c b/libibnetdisc/ibnetdisc.c index 970818c8f..6061b8c40 100644 --- a/libibnetdisc/ibnetdisc.c +++ b/libibnetdisc/ibnetdisc.c @@ -711,8 +711,11 @@ void add_to_portlid_hash(ibnd_port_t * port, f_internal_t *f_int) item = malloc(sizeof(*item)); if (item) { item->port = port; - cl_qmap_insert(&f_int->lid2guid, lid, - &item->cl_map); + if (cl_qmap_insert(&f_int->lid2guid, lid, + &item->cl_map) != &item->cl_map) { + /* Port is already in map, release item */ + free(item); + } } } }