diff options
author | unknown <serg@serg.mylan> | 2004-05-11 12:39:00 +0200 |
---|---|---|
committer | unknown <serg@serg.mylan> | 2004-05-11 12:39:00 +0200 |
commit | a11e04c88bf94b669601163a794169d789bf7354 (patch) | |
tree | d5f6b8644b0907855e0dc918cc1ac8118b389d61 /sql/field.cc | |
parent | 75a87de04cdc8562f1259a0874eb41f28026c8f2 (diff) | |
download | mariadb-git-a11e04c88bf94b669601163a794169d789bf7354.tar.gz |
out-of-bound array access fixed
Diffstat (limited to 'sql/field.cc')
-rw-r--r-- | sql/field.cc | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/sql/field.cc b/sql/field.cc index fdf314972c8..edaa29dbaa0 100644 --- a/sql/field.cc +++ b/sql/field.cc @@ -2307,7 +2307,8 @@ int Field_float::store(double nr) } else { - max_value= (log_10[field_length]-1)/log_10[dec]; + uint tmp=min(field_length,array_elements(log_10)-1); + max_value= (log_10[tmp]-1)/log_10[dec]; /* The following comparison is needed to not get an overflow if nr is close to FLT_MAX @@ -2607,7 +2608,8 @@ int Field_double::store(double nr) } else { - max_value= (log_10[field_length]-1)/log_10[dec]; + uint tmp=min(field_length,array_elements(log_10)-1); + max_value= (log_10[tmp]-1)/log_10[dec]; if (fabs(nr) < DBL_MAX/10.0e+32) nr= floor(nr*log_10[dec]+0.5)/log_10[dec]; } |