Using valgrind on one of my tests I get the follow results ==7241== Syscall param exit_group(exit_code) contains uninitialised byte(s) ==7241== at 0x3E99A90B8A: _Exit (in /lib64/tls/libc-2.3.4.so) ==7241== by 0x3E99A30CEA: exit (in /lib64/tls/libc-2.3.4.so) ==7241== by 0x3E99A1C411: (below main) (in /lib64/tls/libc-2.3.4.so) ==7241== ==7241== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 8 from 1) ==7241== malloc/free: in use at exit: 28,560 bytes in 42 blocks. ==7241== malloc/free: 2,630 allocs, 2,588 frees, 714,842 bytes allocated. ==7241== For counts of detected errors, rerun with: -v ==7241== searching for pointers to 42 not-freed blocks. ==7241== checked 230,984 bytes. ==7241== ==7241== ==7241== 8 bytes in 1 blocks are definitely lost in loss record 3 of 12 ==7241== at 0x4904A06: malloc (vg_replace_malloc.c:149) ==7241== by 0x3E99805A53: _dl_map_object_from_fd (in /lib64/ld-2.3.4.so) ==7241== by 0x3E998065C8: _dl_map_object (in /lib64/ld-2.3.4.so) ==7241== by 0x3E99AFB75C: dl_open_worker (in /lib64/tls/libc-2.3.4.so) ==7241== by 0x3E9980AF8F: _dl_catch_error (in /lib64/ld-2.3.4.so) ==7241== by 0x3E99AFBF09: _dl_open (in /lib64/tls/libc-2.3.4.so) ==7241== by 0x3E99D01053: dlopen_doit (in /lib64/libdl-2.3.4.so) ==7241== by 0x3E9980AF8F: _dl_catch_error (in /lib64/ld-2.3.4.so) ==7241== by 0x3E99D01551: _dlerror_run (in /lib64/libdl-2.3.4.so) ==7241== by 0x3E99D01091: dlopen@@GLIBC_2.2.5 (in /lib64/libdl-2.3.4.so) ==7241== by 0x341A914E61: PR_LoadLibraryWithFlags (in /usr/lib64/libnspr4.so)==7241== by 0x4B4D564: ??? ==7241== ==7241== ==7241== 46 (40 direct, 6 indirect) bytes in 1 blocks are definitely lost in loss record 6 of 12 ==7241== at 0x4905D27: calloc (vg_replace_malloc.c:279) ==7241== by 0x341A9148D1: (within /usr/lib64/libnspr4.so) ==7241== by 0x341A91ACB9: (within /usr/lib64/libnspr4.so) ==7241== by 0x341A922A94: PR_NewLock (in /usr/lib64/libnspr4.so) ==7241== by 0x341B359FD9: (within /usr/lib64/libnss3.so) ==7241== by 0x341B319A76: (within /usr/lib64/libnss3.so) ==7241== by 0x341B31A297: NSS_Init (in /usr/lib64/libnss3.so) ==7241== by 0x404D76: spl_nssSocketConnect (nss_socket.c:263) ==7241== by 0x40347D: spl_stompConnect (spl_stomp.c:368) ==7241== by 0x405DB4: spl_guard_stomp_connect (guard_stomp.c:100) ==7241== by 0x40247F: main (guardstomp.c:40) ==7241== ==7241== ==7241== 1,024 bytes in 1 blocks are definitely lost in loss record 9 of 12 ==7241== at 0x4905D27: calloc (vg_replace_malloc.c:279) ==7241== by 0x341A9145C2: (within /usr/lib64/libnspr4.so) ==7241== by 0x341A91AC69: (within /usr/lib64/libnspr4.so) ==7241== by 0x341A922A94: PR_NewLock (in /usr/lib64/libnspr4.so) ==7241== by 0x341B359FD9: (within /usr/lib64/libnss3.so) ==7241== by 0x341B319A76: (within /usr/lib64/libnss3.so) ==7241== by 0x341B31A297: NSS_Init (in /usr/lib64/libnss3.so) ==7241== by 0x404D76: spl_nssSocketConnect (nss_socket.c:263) ==7241== by 0x40347D: spl_stompConnect (spl_stomp.c:368) ==7241== by 0x405DB4: spl_guard_stomp_connect (guard_stomp.c:100) ==7241== by 0x40247F: main (guardstomp.c:40) ==7241== ==7241== ==7241== 1,152 bytes in 10 blocks are possibly lost in loss record 10 of 12 ==7241== at 0x4905D27: calloc (vg_replace_malloc.c:279) ==7241== by 0x341B37166F: (within /usr/lib64/libnss3.so) ==7241== by 0x341B3717EC: (within /usr/lib64/libnss3.so) ==7241== by 0x341B365BDA: (within /usr/lib64/libnss3.so) ==7241== by 0x341B36A736: (within /usr/lib64/libnss3.so) ==7241== by 0x341B319B44: (within /usr/lib64/libnss3.so) ==7241== by 0x341B31A297: NSS_Init (in /usr/lib64/libnss3.so) ==7241== by 0x404D76: spl_nssSocketConnect (nss_socket.c:263) ==7241== by 0x40347D: spl_stompConnect (spl_stomp.c:368) ==7241== by 0x405DB4: spl_guard_stomp_connect (guard_stomp.c:100) ==7241== by 0x40247F: main (guardstomp.c:40) ==7241== ==7241== LEAK SUMMARY: ==7241== definitely lost: 1,072 bytes in 3 blocks. ==7241== indirectly lost: 6 bytes in 1 blocks. ==7241== possibly lost: 1,152 bytes in 10 blocks. ==7241== still reachable: 26,330 bytes in 28 blocks. ==7241== suppressed: 0 bytes in 0 blocks. ==7241== Reachable blocks (those to which a pointer was found) are not shown. ==7241== To see them, rerun with: --show-reachable=yes
==7241== Syscall param exit_group(exit_code) contains uninitialised byte(s) ==7241== at 0x3E99A90B8A: _Exit (in /lib64/tls/libc-2.3.4.so) ==7241== by 0x3E99A30CEA: exit (in /lib64/tls/libc-2.3.4.so) ==7241== by 0x3E99A1C411: (below main) (in /lib64/tls/libc-2.3.4.so) ==7241== ==7241== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 8 from 1) ==7241== malloc/free: in use at exit: 28,560 bytes in 42 blocks. ==7241== malloc/free: 2,630 allocs, 2,588 frees, 714,842 bytes allocated. ==7241== For counts of detected errors, rerun with: -v ==7241== searching for pointers to 42 not-freed blocks. ==7241== checked 230,984 bytes. Here's the code used during connection shutdown: if (connection->sslSocket != NULL) { PR_Shutdown(connection->sslSocket, PR_SHUTDOWN_BOTH); PR_Close(connection->sslSocket); } SSL_ClearSessionCache(); NSS_Shutdown(); PR_Cleanup(); Most of the leaks look like allocations made by NSS_Init are there other calls I need to make to fix these leaks? Ted -- dev-tech-crypto mailing list dev-tech-crypto@lists.mozilla.org https://lists.mozilla.org/listinfo/dev-tech-crypto