From 3d26dbf19d43b5f96c20c8eae8eaee8353fae727 Mon Sep 17 00:00:00 2001 From: Tilghman Lesher Date: Thu, 16 Dec 2010 09:03:40 +0000 Subject: [PATCH] Only increment the pointer once per loop, otherwise we corrupt the value. (closes issue #18251) Reported by: bcnit Patches: 20101110__issue18251.diff.txt uploaded by tilghman (license 14) Tested by: trev, jthurman, elguero (closes issue #18279) Reported by: zerohalo Patches: 20101109__issue18279.diff.txt uploaded by tilghman (license 14) Tested by: zerohalo git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@298480 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- res/res_config_odbc.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/res/res_config_odbc.c b/res/res_config_odbc.c index daed738d2f..52913507d4 100644 --- a/res/res_config_odbc.c +++ b/res/res_config_odbc.c @@ -67,7 +67,7 @@ struct custom_prepare_struct { static void decode_chunk(char *chunk) { for (; *chunk; chunk++) { - if (*chunk == '^' && strchr("0123456789ABCDEFabcdef", chunk[1]) && strchr("0123456789ABCDEFabcdef", chunk[2])) { + if (*chunk == '^' && strchr("0123456789ABCDEF", chunk[1]) && strchr("0123456789ABCDEF", chunk[2])) { sscanf(chunk + 1, "%02hhX", chunk); memmove(chunk + 1, chunk + 3, strlen(chunk + 3) + 1); } @@ -108,9 +108,8 @@ static SQLHSTMT custom_prepare(struct odbc_obj *obj, void *data) /* We use ^XX, instead of %XX because '%' is a special character in SQL */ snprintf(eptr, encodebuf + sizeof(encodebuf) - eptr, "^%02hhX", *vptr); eptr += 3; - vptr++; } else { - *eptr++ = *vptr++; + *eptr++ = *vptr; } } if (eptr < encodebuf + sizeof(encodebuf)) { -- 2.47.2