summaryrefslogtreecommitdiff
path: root/res/res_config_sqlite.c
diff options
context:
space:
mode:
authorScott Griepentrog <scott@griepentrog.com>2015-09-17 16:34:41 -0500
committerScott Griepentrog <sgriepentrog@digium.com>2015-09-18 13:52:46 -0500
commitc94f46080f60435fffd197d14441ccf9d963521b (patch)
tree3abc1331512162a11e3a0bfaac2388e3fbc88e5e /res/res_config_sqlite.c
parenta665b3128177fc87036d7eb8b3174ac85e791d22 (diff)
CHAOS: avoid crash if string create fails
Validate string buffer allocation before using them. ASTERISK-25323 Change-Id: Ib9c338bdc1e53fb8b81366f0b39482b83ef56ce0
Diffstat (limited to 'res/res_config_sqlite.c')
-rw-r--r--res/res_config_sqlite.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/res/res_config_sqlite.c b/res/res_config_sqlite.c
index fe2fb3cdb..b97ef7a86 100644
--- a/res/res_config_sqlite.c
+++ b/res/res_config_sqlite.c
@@ -781,8 +781,16 @@ static int cdr_handler(struct ast_cdr *cdr)
struct ast_str *sql1 = ast_str_create(160), *sql2 = ast_str_create(16);
int first = 1;
+ if (!sql1 || !sql2) {
+ ast_free(sql1);
+ ast_free(sql2);
+ return -1;
+ }
+
if (!tbl) {
ast_log(LOG_WARNING, "No such table: %s\n", cdr_table);
+ ast_free(sql1);
+ ast_free(sql2);
return -1;
}