summaryrefslogtreecommitdiff
path: root/mysys
diff options
context:
space:
mode:
authormithun <mithun.c.y@oracle.com>2013-09-10 15:32:27 +0530
committermithun <mithun.c.y@oracle.com>2013-09-10 15:32:27 +0530
commitd88c01d3ffe69d9b60e12f7c271470bc1bc1980d (patch)
tree412cd34929aa911dbb793224719de41da89aaf15 /mysys
parent9e91f479d253052e4514cffd0699ef72bcce82a6 (diff)
downloadmariadb-git-d88c01d3ffe69d9b60e12f7c271470bc1bc1980d.tar.gz
Bug #16978278 : BUFFER OVERFLOW WHEN PRINTING A LARGE 64-BIT INTEGER
WITH MY_B_VPRINTF() Issue : In LP 64 machine max long value can be 20 digit decimal value. But in my_b_vprintf() the intermediate buffer storage used is 17 bytes length. This will lead to buffer overflow. Solution : Increased the buffer storage from 17 to 32 bytes. code is backported from 5.6
Diffstat (limited to 'mysys')
-rw-r--r--mysys/mf_iocache2.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/mysys/mf_iocache2.c b/mysys/mf_iocache2.c
index eaa70782f16..f65ca97bd16 100644
--- a/mysys/mf_iocache2.c
+++ b/mysys/mf_iocache2.c
@@ -415,7 +415,7 @@ process_flags:
{
register int iarg;
size_t length2;
- char buff[17];
+ char buff[32];
iarg = va_arg(args, int);
if (*fmt == 'd')
@@ -450,7 +450,7 @@ process_flags:
{
register long iarg;
size_t length2;
- char buff[17];
+ char buff[32];
iarg = va_arg(args, long);
if (*++fmt == 'd')