Skip to content

Commit c81c839

Browse files
committed
Free peer address on set_peer failure
1 parent 760cb46 commit c81c839

1 file changed

Lines changed: 10 additions & 5 deletions

File tree

wolfssl/__init__.py

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -750,11 +750,16 @@ def add_peer(self, addr):
750750
peerAddr = _lib.wolfSSL_dtls_create_peer(addr[1],t2b(addr[0]))
751751
if peerAddr == _ffi.NULL:
752752
raise SSLError("Failed to create peer")
753-
ret = _lib.wolfSSL_dtls_set_peer(self.native_object, peerAddr,
754-
_SOCKADDR_SZ)
755-
if ret != _SSL_SUCCESS:
756-
raise SSLError("Unable to set dtls peer. E(%d)" % ret)
757-
_lib.wolfSSL_dtls_free_peer(peerAddr)
753+
try:
754+
ret = _lib.wolfSSL_dtls_set_peer(
755+
self.native_object, peerAddr,
756+
_SOCKADDR_SZ)
757+
if ret != _SSL_SUCCESS:
758+
raise SSLError(
759+
"Unable to set dtls peer."
760+
" E(%d)" % ret)
761+
finally:
762+
_lib.wolfSSL_dtls_free_peer(peerAddr)
758763

759764
def do_handshake(self, block=False): # pylint: disable=unused-argument
760765
"""

0 commit comments

Comments
 (0)