summaryrefslogtreecommitdiff
path: root/res/res_config_sqlite.c
diff options
context:
space:
mode:
authorWalter Doekes <walter+asterisk@wjd.nu>2011-11-03 20:37:50 +0000
committerWalter Doekes <walter+asterisk@wjd.nu>2011-11-03 20:37:50 +0000
commit969f4aa3d63585f8eabe6894b8676a684ceef56e (patch)
tree93f2f56f07a97ab341d6fa2ad4daf63fda5e5d5a /res/res_config_sqlite.c
parent5dbff9a2a85f50d3b5ff0672755d4edcf1be3403 (diff)
Fix sqlite config driver segfault and broken queries
The sqlite realtime handler assumed you had a static config configured as well. The realtime multientry handler assumed that you weren't using dynamic realtime. (closes issue ASTERISK-18354) (closes issue ASTERISK-18355) Review: https://reviewboard.asterisk.org/r/1561 ........ Merged revisions 343375 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 343393 from http://svn.asterisk.org/svn/asterisk/branches/10 git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@343394 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'res/res_config_sqlite.c')
-rw-r--r--res/res_config_sqlite.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/res/res_config_sqlite.c b/res/res_config_sqlite.c
index b5b8de4ed..d43c32b2a 100644
--- a/res/res_config_sqlite.c
+++ b/res/res_config_sqlite.c
@@ -1055,7 +1055,7 @@ static struct ast_variable * realtime_handler(const char *database, const char *
#define QUERY "SELECT * FROM '%q' WHERE%s %q%s '%q'"
/* \endcond */
- query = sqlite_mprintf(QUERY, table, !strcmp(config_table, table) ? " commented = 0 AND" : "", params[0], op, vals[0]);
+ query = sqlite_mprintf(QUERY, table, (config_table && !strcmp(config_table, table)) ? " commented = 0 AND" : "", params[0], op, vals[0]);
if (!query) {
ast_log(LOG_WARNING, "Unable to allocate SQL query\n");
@@ -1216,10 +1216,10 @@ static struct ast_config *realtime_multi_handler(const char *database,
/* \cond DOXYGEN_CAN_PARSE_THIS */
#undef QUERY
-#define QUERY "SELECT * FROM '%q' WHERE commented = 0 AND %q%s '%q'"
+#define QUERY "SELECT * FROM '%q' WHERE%s %q%s '%q'"
/* \endcond */
- if (!(query = sqlite_mprintf(QUERY, table, params[0], op, tmp_str))) {
+ if (!(query = sqlite_mprintf(QUERY, table, (config_table && !strcmp(config_table, table)) ? " commented = 0 AND" : "", params[0], op, tmp_str))) {
ast_log(LOG_WARNING, "Unable to allocate SQL query\n");
ast_config_destroy(cfg);
ast_free(params);