Hi Daniel,
Just took a look at the latest SVN code and it appears the section you
are referring to is listed below. Indeed, _val is being set to the
address of the location of the value of the particular [row][col]. If
you are referring to another location of the code, please respond
accordingly.
<snip>
/*
* Loop thru each columm, then check to determine if the storage
* pointed to by db_val_t structure must be freed.
* This is required for all data types which use a pointer to a buffer
* like DB_STRING, DB_STR and DB_BLOB.
* If this is not done, a memory leak will happen.
*/
for (col = 0; col < ROW_N(_row); col++) {
_val = &(ROW_VALUES(_row)[col]);
switch (VAL_TYPE(_val)) {
case DB_STRING:
</snip>
Regards,
Norm
Frey, Daniel (external) wrote:
Me again :)
..though I'm not an expert, I decided to simply guess the code :))
Adding
_val = &(ROW_VALUES(_row)[col]);
before the switch statement fixes the bug for me. The line number 580
I gave was wrong because of some debug code I added. The line where
_val = ... is added is 575. Please confirm if this is the correct fix
or just works by accident :) Thanks.
Regards, Daniel
T-Mobile Deutschland GmbH
Aufsichtsrat: Hamid Akhavan (Vorsitzender)
Geschäftsführung: Philipp Humm (Sprecher), Thomas Berlemann, Stefan
Homeister, Holger Kranzusch, Günther Ottendorfer, Dr. Raphael Kübler,
Dr. Steffen Roehn
Handelsregister: Amtsgericht Bonn, HRB 59 19
Sitz der Gesellschaft: Bonn
WEEE-Reg.-Nr.: DE60800328
-----Ursprüngliche Nachricht-----
*Von:* users-bounces(a)openser.org
[mailto:users-bounces@openser.org] *Im Auftrag von *Frey, Daniel
(external)
*Gesendet:* Freitag, 17. August 2007 16:46
*An:* daniel(a)voice-system.ro
*Cc:* users(a)openser.org
*Betreff:* AW: [OpenSER-Users] OpenSER 1.2.2 - Problem with
database (postgres?)
Hi Daniel,
a further analysis shows that db/db.c table_version() is causing
dbf->free_result() to be called - but it never returns. In fact,
the version of the database table is retrieved correctly (line 211
reads the correct value), but line 212 never returns. Checking
modules/postgres/db_res.c, I found that pg_free_result() calls
pg_free_columns() in line 653 (which returns), and then it calls
pg_free_rows() which does not return.
Also, I noticed that there's a warning during the compilation
about db_res.c:580: warning: ‘_val’ is used uninitialized in this
function
Looks like a candidate - but I'm not familiar with the internals
here...
Regards, Daniel
T-Mobile Deutschland GmbH
Aufsichtsrat: Hamid Akhavan (Vorsitzender)
Geschäftsführung: Philipp Humm (Sprecher), Thomas Berlemann,
Stefan Homeister, Holger Kranzusch, Günther Ottendorfer, Dr.
Raphael Kübler, Dr. Steffen Roehn
Handelsregister: Amtsgericht Bonn, HRB 59 19
Sitz der Gesellschaft: Bonn
WEEE-Reg.-Nr.: DE60800328
------------------------------------------------------------------------
_______________________________________________
Users mailing list
Users(a)openser.org
http://openser.org/cgi-bin/mailman/listinfo/users