Module: kamailio Branch: master Commit: 1d2c16c2c65d65bc6bb348800a935712eacfaca9 URL: https://github.com/kamailio/kamailio/commit/1d2c16c2c65d65bc6bb348800a935712...
Author: Daniel-Constantin Mierla miconda@gmail.com Committer: Daniel-Constantin Mierla miconda@gmail.com Date: 2016-11-02T13:50:42+01:00
presence: free cloned dialog_id in case of errors
---
Modified: modules/presence/presentity.c
---
Diff: https://github.com/kamailio/kamailio/commit/1d2c16c2c65d65bc6bb348800a935712... Patch: https://github.com/kamailio/kamailio/commit/1d2c16c2c65d65bc6bb348800a935712...
---
diff --git a/modules/presence/presentity.c b/modules/presence/presentity.c index 4c8c914..3f79cfa 100644 --- a/modules/presence/presentity.c +++ b/modules/presence/presentity.c @@ -430,11 +430,13 @@ int delete_presentity_if_dialog_id_exists(presentity_t* presentity, char* dialog pa_dbf.free_result(pa_db, result); result = NULL; free(db_dialog_id); + db_dialog_id = NULL;
return 1; }
free(db_dialog_id); + db_dialog_id = NULL; } }
@@ -693,10 +695,13 @@ int update_presentity(struct sip_msg* msg, presentity_t* presentity, str* body, check_if_dialog(*body, &is_dialog, &dialog_id); if ( dialog_id ) { if (delete_presentity_if_dialog_id_exists(presentity, dialog_id) < 0) { + free(dialog_id); + dialog_id = NULL; goto error; }
free(dialog_id); + dialog_id = NULL; } LM_DBG("inserting %d cols into table\n",n_query_cols);
@@ -795,6 +800,10 @@ int update_presentity(struct sip_msg* msg, presentity_t* presentity, str* body, if(check_if_dialog(*body, &is_dialog, &dialog_id)< 0) { LM_ERR("failed to check if dialog stored\n"); + if(dialog_id) { + free(dialog_id); + dialog_id = NULL; + } goto error; }
@@ -808,13 +817,26 @@ int update_presentity(struct sip_msg* msg, presentity_t* presentity, str* body, if(check_if_dialog(old_body, &is_dialog, &old_dialog_id)< 0) { LM_ERR("failed to check if dialog stored\n"); + if(old_dialog_id) { + free(old_dialog_id); + old_dialog_id = NULL; + } goto error; }
- if(is_dialog==0 ) /* if the old body has no dialog - overwrite */ + /* if the old body has no dialog - overwrite */ + if(is_dialog==0 ) { + if(old_dialog_id) { + free(old_dialog_id); + old_dialog_id = NULL; + } goto after_dialog_check; + }
- free(old_dialog_id); + if(old_dialog_id) { + free(old_dialog_id); + old_dialog_id = NULL; + }
sender.s = (char*)row_vals[rez_sender_col].val.string_val; sender.len= strlen(sender.s);