Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
ibnetdisc: Fix leak in add_to_portlid_hash
[ Upstream commit 5814d78 ] When the duplicate port is added to the map cl_qmap_insert() returns pointer to existing value and the new entry is left unused that results in leak: ==1606814== 2,624 bytes in 41 blocks are definitely lost in loss record 1 of 1 ==1606814== at 0x483B7F3: malloc (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so) ==1606814== by 0x5174B59: add_to_portlid_hash (ibnetdisc.c:704) ==1606814== by 0x517638E: recv_port_info (ibnetdisc.c:379) ==1606814== by 0x51789B0: process_one_recv (query_smp.c:200) ==1606814== by 0x5178EF7: process_mads (query_smp.c:276) ==1606814== by 0x51755E7: ibnd_discover_fabric (ibnetdisc.c:817) ==1606814== by 0x109229: main (in /vagrant/go/gpu/ib-ict-manager/a.out) The solution is to free new item if it was not added to the map. Fixes: 1616816 ("ibdiags: Use cl_qmap instead of glib hashtable") Signed-off-by: Anton Kuchin <[email protected]> Signed-off-by: Nicolas Morey <[email protected]>
- Loading branch information