AW: [OpenSER-Users] OpenSER 1.2.2 - Problem with database (postgres?)

Norman Brandinger norm at goes.com
Fri Aug 17 17:42:09 CEST 2007


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





More information about the Users mailing list