summaryrefslogtreecommitdiff
path: root/addons/cdr_mysql.c
diff options
context:
space:
mode:
authorTilghman Lesher <tilghman@meg.abyt.es>2009-11-09 07:37:52 +0000
committerTilghman Lesher <tilghman@meg.abyt.es>2009-11-09 07:37:52 +0000
commitc0b3c923a46afc12837698a78a11b17a7fc384d8 (patch)
treea1d863ce8753551f36998a0b98a2e728758de90a /addons/cdr_mysql.c
parentec6f1f3ea48d505e7774dd1863c47806789c9755 (diff)
Fix various problems detected with Valgrind.
* chan_console accessed pvts after deallocation. * cdr_mysql stored a pointer that was freed by realloc() * The module loader did not check usecount on shutdown, which led to chan_iax2 reading a timer that was already unloaded. * The event subsystem sometimes creates an event with no IEs. Due to a corner condition, the code would read beyond the memory boundary. * res_pktccops did not correctly check whether its monitor thread was started. (closes issue #16062) Reported by: alexanderheinz Patches: 20091109__issue16062.diff.txt uploaded by tilghman (license 14) Tested by: tilghman git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@228798 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'addons/cdr_mysql.c')
-rw-r--r--addons/cdr_mysql.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/addons/cdr_mysql.c b/addons/cdr_mysql.c
index a6d37b31d..a7894acdc 100644
--- a/addons/cdr_mysql.c
+++ b/addons/cdr_mysql.c
@@ -364,16 +364,16 @@ static int my_load_config_string(struct ast_config *cfg, const char *category, c
return -1;
}
+ tmp = ast_variable_retrieve(cfg, category, variable);
+
+ ast_str_set(field, 0, "%s", tmp ? tmp : def);
+
us->str = *field;
AST_LIST_LOCK(&unload_strings);
AST_LIST_INSERT_HEAD(&unload_strings, us, entry);
AST_LIST_UNLOCK(&unload_strings);
- tmp = ast_variable_retrieve(cfg, category, variable);
-
- ast_str_set(field, 0, "%s", tmp ? tmp : def);
-
return 0;
}