Fix encoding of custom prepare extra data.
authorMark Michelson <mmichelson@digium.com>
Wed, 7 May 2014 17:56:04 +0000 (17:56 +0000)
committerMark Michelson <mmichelson@digium.com>
Wed, 7 May 2014 17:56:04 +0000 (17:56 +0000)
Patches:
res_config_odbc-take2.patch by John Hardin (License #6512)
........

Merged revisions 413396 from http://svn.asterisk.org/svn/asterisk/branches/1.8
........

Merged revisions 413397 from http://svn.asterisk.org/svn/asterisk/branches/11
........

Merged revisions 413398 from http://svn.asterisk.org/svn/asterisk/branches/12

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@413399 65c4cc65-6c06-0410-ace0-fbb531ad65f3

res/res_config_odbc.c

index 922923c..585c751 100644 (file)
@@ -135,13 +135,13 @@ static SQLHSTMT custom_prepare(struct odbc_obj *obj, void *data)
        }
 
        if (!ast_strlen_zero(cps->extra)) {
-               if (strchr(cps->extra, ';') || strchr(cps->extra, '^')) {
-                       ENCODE_CHUNK(encodebuf, cps->extra);
-                       SQLBindParameter(stmt, x++, SQL_PARAM_INPUT, SQL_C_CHAR, SQL_CHAR, strlen(encodebuf), 0, (void *)encodebuf, 0, NULL);
+               const char *newval = cps->extra;
+               if (strchr(newval, ';') || strchr(newval, '^')) {
+                       ENCODE_CHUNK(encodebuf, newval);
+                       ast_string_field_set(cps, encoding[x], encodebuf);
+                       newval = cps->encoding[x];
                } 
-               else {
-                       SQLBindParameter(stmt, x++, SQL_PARAM_INPUT, SQL_C_CHAR, SQL_CHAR, strlen(cps->extra), 0, (void *)cps->extra, 0, NULL);
-               }
+               SQLBindParameter(stmt, x++, SQL_PARAM_INPUT, SQL_C_CHAR, SQL_CHAR, strlen(newval), 0, (void *)newval, 0, NULL);
        }
 
        return stmt;