diff options
Diffstat (limited to 'sql/field.cc')
-rw-r--r-- | sql/field.cc | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/sql/field.cc b/sql/field.cc index fd6eba9e492..a64eaad7308 100644 --- a/sql/field.cc +++ b/sql/field.cc @@ -3385,6 +3385,11 @@ longlong Field_double::val_int(void) else #endif doubleget(j,ptr); + /* Check whether we fit into longlong range */ + if (j <= (double) LONGLONG_MIN) + return (longlong) LONGLONG_MIN; + if (j >= (double) (ulonglong) LONGLONG_MAX) + return (longlong) LONGLONG_MAX; return ((longlong) j); } |