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@openser.org [mailto:users-bounces@openser.org] *Im Auftrag von *Frey, Daniel (external) *Gesendet:* Freitag, 17. August 2007 16:46 *An:* daniel@voice-system.ro *Cc:* users@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@openser.org http://openser.org/cgi-bin/mailman/listinfo/users