commit b9f20d2c79c1c27fb11aff296ec63b78683a8c38
parent 446f21c2062b2734bbddb994a43fce2b4ba77050
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:
1 file changed, 13 insertions(+), 0 deletions(-)
diff --git a/electrum/gui/qt/locktimeedit.py b/electrum/gui/qt/locktimeedit.py
@@ -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)