Full_Name: Jan Engelhardt Version: 2.4.48 OS: openSUSE Tumbleweed; Linux 5.3.0-rc7 x86_64 URL: ftp://ftp.openldap.org/incoming/ Submission from: (NULL) (2a02:8108:96c0:15fc:2137:8684:9608:51f8)
» cat x.c #define LDAP_DEPRECATED 1 #include <ldap.h> int main() { LDAP *ld; ldap_initialize(&ld, "ldapi:///"); ldap_unbind(ld); }
» gcc x.c -Wall -lldap -ggdb3 » valgrind --leak-check=full ./a.out ==25779== HEAP SUMMARY: ==25779== in use at exit: 26,395 bytes in 85 blocks ==25779== total heap usage: 233 allocs, 148 frees, 177,134 bytes allocated ==25779== ==25779== 40 bytes in 1 blocks are definitely lost in loss record 11 of 24 ==25779== at 0x4838B65: calloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so) ==25779== by 0x4A8310C: ber_memcalloc_x (memory.c:283) ==25779== by 0x4A84EC0: ber_sockbuf_alloc (sockbuf.c:60) ==25779== by 0x487396A: ldap_create (open.c:172) ==25779== by 0x4873C8D: ldap_initialize (open.c:241) ==25779== by 0x10915F: main (x.c:6) ==25779== ==25779== LEAK SUMMARY: ==25779== definitely lost: 40 bytes in 1 blocks ==25779== indirectly lost: 0 bytes in 0 blocks ==25779== possibly lost: 0 bytes in 0 blocks ==25779== still reachable: 26,355 bytes in 84 blocks ==25779== suppressed: 0 bytes in 0 blocks ==25779== Reachable blocks (those to which a pointer was found) are not shown. ==25779== To see them, rerun with: --leak-check=full --show-leak-kinds=all ==25779== ==25779== For lists of detected and suppressed errors, rerun with: -s ==25779== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0)
unbind.c: 123 for ( lm = ld->ld_responses; lm != NULL; lm = next ) { 128 if ( ld->ld_abandoned != NULL ) { 132 LDAP_MUTEX_UNLOCK( &ld->ld_res_mutex ); 136 ber_int_sb_destroy( ld->ld_sb );
Should this probably be LBER_FREE rather than ber_int_sb_destroy?