summaryrefslogtreecommitdiff
path: root/src/mongo/db/pipeline
diff options
context:
space:
mode:
authorMilena Ivanova <milena.ivanova@mongodb.com>2021-10-14 08:30:52 +0000
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2021-10-14 08:56:31 +0000
commit35e3fcd54f2c591e5ec33fcde036e40d27d64134 (patch)
treec45b02c29b585ce94cacc354b0a7f4d16c05dfc1 /src/mongo/db/pipeline
parentb14ba0824e190a86d66a25be8338a00d18563c95 (diff)
downloadmongo-35e3fcd54f2c591e5ec33fcde036e40d27d64134.tar.gz
SERVER-60450 Add error check for $dateSubtract when negating amount
value
Diffstat (limited to 'src/mongo/db/pipeline')
-rw-r--r--src/mongo/db/pipeline/expression.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/mongo/db/pipeline/expression.cpp b/src/mongo/db/pipeline/expression.cpp
index e806e7f882c..2bfd937b9ac 100644
--- a/src/mongo/db/pipeline/expression.cpp
+++ b/src/mongo/db/pipeline/expression.cpp
@@ -7224,6 +7224,10 @@ Value ExpressionDateSubtract::evaluateDateArithmetics(Date_t date,
TimeUnit unit,
long long amount,
const TimeZone& timezone) const {
+ // Long long min value cannot be negated.
+ uassert(6045000,
+ str::stream() << "invalid $dateSubtract 'amount' parameter value: " << amount,
+ amount != std::numeric_limits<long long>::min());
return Value(dateAdd(date, unit, -amount, timezone));
}