summaryrefslogtreecommitdiff
path: root/sql/sql_time.cc
diff options
context:
space:
mode:
authorAlexander Barkov <bar@mariadb.org>2016-12-07 18:05:13 +0400
committerAlexander Barkov <bar@mariadb.org>2016-12-07 18:05:13 +0400
commitc32d3e16f37b0b3581ee03d4b3681add890112da (patch)
tree3541a21afe6a4df54647450255a86530ce1d9fda /sql/sql_time.cc
parent52b590bcf9273b673670ae2847d2e7361a470741 (diff)
downloadmariadb-git-c32d3e16f37b0b3581ee03d4b3681add890112da.tar.gz
MDEV-10787 Assertion `ltime->neg == 0' failed in void date_to_datetime(MYSQL_TIME*)
Diffstat (limited to 'sql/sql_time.cc')
-rw-r--r--sql/sql_time.cc5
1 files changed, 4 insertions, 1 deletions
diff --git a/sql/sql_time.cc b/sql/sql_time.cc
index b55b1d76b99..1bd68e89ecb 100644
--- a/sql/sql_time.cc
+++ b/sql/sql_time.cc
@@ -930,7 +930,10 @@ bool date_add_interval(MYSQL_TIME *ltime, interval_type int_type,
my_bool neg= 0;
enum enum_mysql_timestamp_type time_type= ltime->time_type;
- if ((ulong) interval.day > MAX_DAY_NUMBER)
+ if (((ulonglong) interval.day +
+ (ulonglong) interval.hour / 24 +
+ (ulonglong) interval.minute / 24 / 60 +
+ (ulonglong) interval.second / 24 / 60 / 60) > MAX_DAY_NUMBER)
goto invalid_date;
if (time_type != MYSQL_TIMESTAMP_TIME)