Skip to content

Commit 223d498

Browse files
committed
Fix segfault with newer OpenSSL versions
1 parent 4b8fa0c commit 223d498

File tree

1 file changed

+6
-0
lines changed

1 file changed

+6
-0
lines changed

bitcoin/core/key.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -434,6 +434,12 @@ def verify(self, hash, sig): # pylint: disable=redefined-builtin
434434
norm_sig = ctypes.c_void_p(0)
435435
_ssl.d2i_ECDSA_SIG(ctypes.byref(norm_sig), ctypes.byref(ctypes.c_char_p(sig)), len(sig))
436436

437+
# Newer versions of OpenSSL (>3.0.0?) seem to fail here, leaving a null
438+
# pointer in norm_sig
439+
if not norm_sig:
440+
return False
441+
442+
# Older versions (<3.0.0?) seem to fail here, with a empty derlen
437443
derlen = _ssl.i2d_ECDSA_SIG(norm_sig, 0)
438444
if derlen == 0:
439445
_ssl.ECDSA_SIG_free(norm_sig)

0 commit comments

Comments
 (0)