summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTor Didriksen <tor.didriksen@oracle.com>2012-12-10 09:55:08 +0100
committerTor Didriksen <tor.didriksen@oracle.com>2012-12-10 09:55:08 +0100
commit8dc7c505a3ff39239d01acd6c0d0b8e923309d2e (patch)
tree297d09ded26e0c3e8cbaf154a818830ead77e381
parentf3eea3fd603ed8b73d185972608403521fd42c53 (diff)
downloadmariadb-git-8dc7c505a3ff39239d01acd6c0d0b8e923309d2e.tar.gz
Bug#15960005 VALGRIND WARNINGS IN PROCESS_ARGS
Both <width> and <precision> can be specified as numbers or '*'. If an asterisk is used, an argument of type int is consumed.
-rw-r--r--include/mysql/service_my_snprintf.h1
-rw-r--r--strings/my_vsnprintf.c2
2 files changed, 3 insertions, 0 deletions
diff --git a/include/mysql/service_my_snprintf.h b/include/mysql/service_my_snprintf.h
index fd55944ed67..c7a03893d2e 100644
--- a/include/mysql/service_my_snprintf.h
+++ b/include/mysql/service_my_snprintf.h
@@ -49,6 +49,7 @@
string will be quoted according to MySQL identifier quoting rules.
Both <width> and <precision> can be specified as numbers or '*'.
+ If an asterisk is used, an argument of type int is consumed.
<length modifier> can be 'l', 'll', or 'z'.
diff --git a/strings/my_vsnprintf.c b/strings/my_vsnprintf.c
index 73cbf02f148..b0fd83451a6 100644
--- a/strings/my_vsnprintf.c
+++ b/strings/my_vsnprintf.c
@@ -343,6 +343,7 @@ start:
print_arr[idx].length--;
DBUG_ASSERT(*fmt == '$' && print_arr[idx].length < MAX_ARGS);
args_arr[print_arr[idx].length].arg_type= 'd';
+ args_arr[print_arr[idx].length].have_longlong= 0;
print_arr[idx].flags|= LENGTH_ARG;
arg_count= max(arg_count, print_arr[idx].length + 1);
fmt++;
@@ -361,6 +362,7 @@ start:
print_arr[idx].width--;
DBUG_ASSERT(*fmt == '$' && print_arr[idx].width < MAX_ARGS);
args_arr[print_arr[idx].width].arg_type= 'd';
+ args_arr[print_arr[idx].width].have_longlong= 0;
print_arr[idx].flags|= WIDTH_ARG;
arg_count= max(arg_count, print_arr[idx].width + 1);
fmt++;