just to say I have run into related problems on debian lenny amd64 (postgres 8.3.5, libc-2.7) and centos 5.2 (postgres 8.4.1, libc-2.5)
code as simple as this: #include <libpq-fe.h> int main() { PGconn *connection = PQconnectdb("user=postgres"); PQfinish(connection); return 0; } gives (run through valgrind --leak-check=full): ==13832== ==13832== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 19 from 2) ==13832== malloc/free: in use at exit: 292 bytes in 11 blocks. ==13832== malloc/free: 131 allocs, 120 frees, 51,532 bytes allocated. ==13832== For counts of detected errors, rerun with: -v ==13832== searching for pointers to 11 not-freed blocks. ==13832== checked 703,248 bytes. ==13832== ==13832== 292 (52 direct, 240 indirect) bytes in 1 blocks are definitely lost in loss record 1 of 3 ==13832== at 0x4C2260E: malloc (vg_replace_malloc.c:207) ==13832== by 0x512852F: (within /lib/libc-2.7.so) ==13832== by 0x5128D06: __nss_database_lookup (in /lib/libc-2.7.so) ==13832== by 0x82A931F: ??? ==13832== by 0x82AA02C: ??? ==13832== by 0x50E7101: getpwuid_r (in /lib/libc-2.7.so) ==13832== by 0x4E41D38: (within /usr/lib/libpq.so.5.1) ==13832== by 0x4E2E50C: (within /usr/lib/libpq.so.5.1) ==13832== by 0x4E3258F: (within /usr/lib/libpq.so.5.1) ==13832== by 0x4E3260B: (within /usr/lib/libpq.so.5.1) ==13832== by 0x4E32F98: PQconnectStart (in /usr/lib/libpq.so.5.1) ==13832== by 0x4E32FE5: PQconnectdb (in /usr/lib/libpq.so.5.1) ==13832== ==13832== LEAK SUMMARY: ==13832== definitely lost: 52 bytes in 1 blocks. ==13832== indirectly lost: 240 bytes in 10 blocks. ==13832== possibly lost: 0 bytes in 0 blocks. ==13832== still reachable: 0 bytes in 0 blocks. ==13832== suppressed: 0 bytes in 0 blocks. and ==9466== Invalid free() / delete / delete[] ==9466== at 0x4020FDA: free (vg_replace_malloc.c:233) ==9466== by 0x4158A2D: free_mem (in /lib/libc-2.5.so) ==9466== by 0x41585A6: __libc_freeres (in /lib/libc-2.5.so) ==9466== by 0x401D1E6: _vgnU_freeres (vg_preloaded.c:60) ==9466== by 0x40D9C63: _Exit (in /lib/libc-2.5.so) ==9466== by 0x405EDF3: (below main) (in /lib/libc-2.5.so) ==9466== Address 0x401C8F8 is not stack'd, malloc'd or (recently) free'd ==9466== ==9466== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 45 from 1) ==9466== malloc/free: in use at exit: 0 bytes in 0 blocks. ==9466== malloc/free: 136 allocs, 137 frees, 49,272 bytes allocated. cheers, Michael