diff options
Diffstat (limited to 'libmysql')
-rw-r--r-- | libmysql/libmysql.c | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/libmysql/libmysql.c b/libmysql/libmysql.c index bbd781172e2..f0f2d60dcad 100644 --- a/libmysql/libmysql.c +++ b/libmysql/libmysql.c @@ -3873,15 +3873,19 @@ static void fetch_float_with_conversion(MYSQL_BIND *param, MYSQL_FIELD *field, sprintf(buff, "%.*f", (int) field->decimals, value); end= strend(buff); } - uint length= (uint) (end-buff); - if (field->flags & ZEROFILL_FLAG && length < field->length && - field->length < MAX_DOUBLE_STRING_REP_LENGTH-1) + { - bmove_upp((char*) buff+field->length,buff+length, length); - bfill((char*) buff, field->length - length,'0'); - length= field->length; + size_t length= end - buff; + if (field->flags & ZEROFILL_FLAG && length < field->length && + field->length < MAX_DOUBLE_STRING_REP_LENGTH - 1) + { + bmove_upp((char*) buff + field->length, buff + length, length); + bfill((char*) buff, field->length - length, '0'); + length= field->length; + } + fetch_string_with_conversion(param, buff, length); } - fetch_string_with_conversion(param, buff, length); + break; } } |