Hello, I found some memory leaks in dbic.c. In regression tests, bacula always report buffers not release allocates in dbi.c after run tests.
Comparing to postgresql.c I have some doubts. Every call of PQgetvalue is return to row[j] (like my_postgresql_fetch_row): 378 for (j = 0; j < mdb->num_fields; j++) { 379 mdb->row[j] = PQgetvalue(mdb->result, mdb->row_number, j); 380 Dmsg2(500, "my_postgresql_fetch_row field '%d' has value '%s'\n", j, mdb->row[j]); 381 } When my_postgresql_free_result() are call, PQclean() release every data in row[j]: 532 if (mdb->result) { 533 PQclear(mdb->result); 534 mdb->result = NULL; 535 } Suppose, If PQclear not release nothing, how I can free mdb->row? (mdb->row is a array of pointers) In the case, libdbi don't free like PQclear() and I do a loop and free every position of mdb->row[j] and mdb->row too. Like this: if (mdb->row) { # if mdb->num_fields are 18, release 18 pointers... for( j = 0; j < mdb->num_fields; j++) { free(mdb->row[j]); } free(mdb->row) mdb->row = NULL; } This is the right way or has another way to free mdb->row? Thanks ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ _______________________________________________ Bacula-devel mailing list Bacula-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/bacula-devel