Details
-
Bug
-
Resolution: Fixed
-
P2: Important
-
6.4.0, 6.6
-
Ubuntu 20.04 LTS
clang 10.0.0
-
5
-
19c913b43 (dev)
-
Foundation Sprint 74
Description
- Have a build of Qt configured with "-sanitize undefined".
- Use that to build the attached project.
The output will include something like:/home/qtrob/dev/src/qt-dev_01.02-base_imageformats_svg/qtbase/src/corelib/time/qdatetime.cpp:3061:60: runtime error: signed integer overflow: -106751991168 * 86400000 cannot be represented in type 'long long' SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior /home/qtrob/dev/src/qt-dev_01.02-base_imageformats_svg/qtbase/src/corelib/time/qdatetime.cpp:3061:60 in /home/qtrob/dev/src/qt-dev_01.02-base_imageformats_svg/qtbase/src/corelib/time/qdatetime.cpp:3061:53: runtime error: signed integer overflow: -9223372036838297000 - 9223372036794351616 cannot be represented in type 'long long' SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior /home/qtrob/dev/src/qt-dev_01.02-base_imageformats_svg/qtbase/src/corelib/time/qdatetime.cpp:3061:53 in
I expect that a valid QDateTime can be converted to a QString without undefined behavior.
Google's oss-fuzz found this as issue 47607.