tqt locktimeedit: fix max timestamp platform-dependent crash - electrum - Electrum Bitcoin wallet HTML git clone https://git.parazyd.org/electrum DIR Log DIR Files DIR Refs DIR Submodules --- DIR commit b9f20d2c79c1c27fb11aff296ec63b78683a8c38 DIR parent 446f21c2062b2734bbddb994a43fce2b4ba77050 HTML Author: SomberNight <somber.night@protonmail.com> Date: Thu, 21 May 2020 21:03:41 +0200 qt locktimeedit: fix max timestamp platform-dependent crash fixes #6170 Diffstat: M electrum/gui/qt/locktimeedit.py | 13 +++++++++++++ 1 file changed, 13 insertions(+), 0 deletions(-) --- DIR diff --git a/electrum/gui/qt/locktimeedit.py b/electrum/gui/qt/locktimeedit.py t@@ -146,8 +146,21 @@ class LockTimeHeightEdit(LockTimeRawEdit): painter.drawText(textRect, Qt.AlignRight | Qt.AlignVCenter, "height") +def get_max_allowed_timestamp() -> int: + ts = NLOCKTIME_MAX + # Test if this value is within the valid timestamp limits (which is platform-dependent). + # see #6170 + try: + datetime.fromtimestamp(ts) + except (OSError, OverflowError): + ts = 2 ** 31 - 1 # INT32_MAX + datetime.fromtimestamp(ts) # test if raises + return ts + + class LockTimeDateEdit(QDateTimeEdit, _LockTimeEditor): min_allowed_value = NLOCKTIME_BLOCKHEIGHT_MAX + 1 + max_allowed_value = get_max_allowed_timestamp() def __init__(self, parent=None): QDateTimeEdit.__init__(self, parent)