#define STORE_SQL_FMT_CAT "INSERT INTO %s (dir, msgnum, recording, context, macrocontext, callerid, " \
"origtime, duration, mailboxuser, mailboxcontext, flag, msg_id, category) " \
- "VALUES (?,?,?,?,?,?,?,?,?,?,?,?)"
+ "VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?)"
#define STORE_SQL_FMT "INSERT INTO %s (dir, msgnum, recording, context, macrocontext, callerid, "\
"origtime, duration, mailboxuser, mailboxcontext, flag, msg_id) "\
- "VALUES (?,?,?,?,?,?,?,?,?,?,?)"
+ "VALUES (?,?,?,?,?,?,?,?,?,?,?,?)"
static SQLHSTMT odbc_insert_data_cb(struct odbc_obj *obj, void *vdata)
{
}
if (!strcmp(folder, "INBOX")) {
- gps.sql = ast_alloca(sizeof(MSGCOUNT_SQL_FMT_INBOX) + odbc_table_len + (strlen(VM_SPOOL_DIR) + strlen(context) + strlen(mailbox) * 2));
- sprintf(gps.sql, MSGCOUNT_SQL_FMT_INBOX, odbc_table, VM_SPOOL_DIR, context, mailbox, VM_SPOOL_DIR, context, mailbox); /* Safe */
+ res = ast_asprintf(&gps.sql, MSGCOUNT_SQL_FMT_INBOX, odbc_table, VM_SPOOL_DIR, context, mailbox, VM_SPOOL_DIR, context, mailbox);
} else {
- gps.sql = ast_alloca(sizeof(MSGCOUNT_SQL_FMT) + odbc_table_len + strlen(VM_SPOOL_DIR) + strlen(context) + strlen(mailbox) + strlen(folder));
- sprintf(gps.sql, MSGCOUNT_SQL_FMT, odbc_table, VM_SPOOL_DIR, context, mailbox, folder); /* Safe */
+ res = ast_asprintf(&gps.sql, MSGCOUNT_SQL_FMT, odbc_table, VM_SPOOL_DIR, context, mailbox, folder);
}
-
+ if (res <= 0) {
+ SCOPE_EXIT_LOG_RTN_VALUE(0, AST_LOG_WARNING, "Failed to allocate memory for SQL statement for '%s'!\n", odbc_database);
+ }
+ ast_trace(-1, "SQL: %s\n", gps.sql);
stmt = ast_odbc_prepare_and_execute(obj, generic_prepare, &gps);
if (!stmt) {
ast_log(AST_LOG_WARNING, "SQL Execute error!\n[%s]\n\n", gps.sql);
bail:
ast_odbc_release_obj(obj);
+ ast_free(gps.sql);
SCOPE_EXIT_RTN_VALUE(nummsgs, "Messages: %d\n", nummsgs);
}
#undef MSGCOUNT_SQL_FMT