summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorEdward Welbourne <edward.welbourne@qt.io>2021-02-17 11:28:51 +0100
committerEdward Welbourne <edward.welbourne@qt.io>2021-02-18 11:21:37 +0100
commit94b9ee03b5646bf58c12337bbc44e38265ad15a2 (patch)
tree8c5e3e3638c5f01082e6b289b94fe690df49d9d2 /src
parent755c678f0f5062cee4b8e71f6f2ff3958a01715e (diff)
Correct qt_mktime()'s check for last second in 1969
It was comparing time->second() to MSECS_PER_DAY - 1, but time->second() is the second within its minute, so is at most 59. It should be comparing seconds into the day to SECS_PER_DAY - 1. Prompted by a PVS-studio article. Pick-to: 6.1 6.0 5.15 Change-Id: I1802c49fa18818f4b4fe74f187da5f799df7d1de Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'src')
-rw-r--r--src/corelib/time/qdatetime.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/corelib/time/qdatetime.cpp b/src/corelib/time/qdatetime.cpp
index 743a94ab7a..3b1b9e754f 100644
--- a/src/corelib/time/qdatetime.cpp
+++ b/src/corelib/time/qdatetime.cpp
@@ -2486,7 +2486,7 @@ static qint64 qt_mktime(QDate *date, QTime *time, QDateTimePrivate::DaylightStat
*abbreviation = qt_tzname(QDateTimePrivate::StandardTime);
}
} else if (yy == 1969 && mm == 12 && dd == 31
- && time->second() == MSECS_PER_DAY - 1) {
+ && QTime(0, 0).secsTo(*time) == SECS_PER_DAY - 1) {
// There was, of course, a last second in 1969, at time_t(-1); we won't
// rescue it if it's not in normalised form, and we don't know its DST
// status (unless we did already), but let's not wantonly declare it