cdr/cdr_adaptive_odbc.c: Fix quoted identifier usage when inserting CDR records
authorElazar Broad <elazar@thebroadfamily.com>
Mon, 20 Jul 2015 20:59:32 +0000 (16:59 -0400)
committerRichard Mudgett <rmudgett@digium.com>
Mon, 20 Jul 2015 22:46:19 +0000 (17:46 -0500)
Commit a24ce38 added support for the use of quoted indentifiers when inserting
CDR records into the database. However, the if statement logic responsible for
determining whether to use those identifiers is reversed, resulting in a
reference to the quoted identifier character buffer which will be null, hence
null terminating the SQL query, resulting in a truncated statement which
fails to execute.

ASTERISK-25263 #close
Reported by: Elazar Broad
Tested by: Elazar Broad

Change-Id: I40da47309b67cc1572207b1515dcc08ec9b1f644

cdr/cdr_adaptive_odbc.c

index f276959..8bd9d0d 100644 (file)
@@ -740,9 +740,9 @@ static int odbc_log(struct ast_cdr *cdr)
                                        continue;
                                }
                                if (quoted) {
-                                       ast_str_append(&sql, 0, "%s%s", separator, entry->name);
-                               } else {
                                        ast_str_append(&sql, 0, "%s%c%s%c", separator, tableptr->quoted_identifiers, entry->name, tableptr->quoted_identifiers);
+                               } else {
+                                       ast_str_append(&sql, 0, "%s%s", separator, entry->name);
                                }
                                separator = ", ";
                        } else if (entry->filtervalue