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 mysys/mf_iocache2.c: In function my_b_vprintf increased the size of local buff from 17 to 32 bytes.
This commit is contained in:
parent
aff9f26290
commit
4250117308
@ -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')
|
||||
|
Loading…
x
Reference in New Issue
Block a user