Skip to content

Commit c65612c

Browse files
committed
hanging object references in helper functions avoided
1 parent 82e2156 commit c65612c

File tree

1 file changed

+9
-2
lines changed

1 file changed

+9
-2
lines changed

src/aws_encryption_sdk/__init__.py

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
StreamEncryptor,
1616
)
1717
from aws_encryption_sdk.structures import CryptoResult
18+
import copy
1819

1920
__all__ = ("encrypt", "decrypt", "stream")
2021

@@ -84,7 +85,10 @@ def encrypt(**kwargs):
8485
with StreamEncryptor(**kwargs) as encryptor:
8586
ciphertext = encryptor.read()
8687

87-
return CryptoResult(result=ciphertext, header=encryptor.header, keyring_trace=encryptor.keyring_trace)
88+
header_copy = copy.deepcopy(encryptor.header)
89+
keyring_trace_copy = copy.deepcopy(encryptor.keyring_trace)
90+
91+
return CryptoResult(result=ciphertext, header=header_copy, keyring_trace=keyring_trace_copy)
8892

8993

9094
def decrypt(**kwargs):
@@ -143,7 +147,10 @@ def decrypt(**kwargs):
143147
with StreamDecryptor(**kwargs) as decryptor:
144148
plaintext = decryptor.read()
145149

146-
return CryptoResult(result=plaintext, header=decryptor.header, keyring_trace=decryptor.keyring_trace)
150+
header_copy = copy.deepcopy(decryptor.header)
151+
keyring_trace_copy = copy.deepcopy(decryptor.keyring_trace)
152+
153+
return CryptoResult(result=plaintext, header=header_copy, keyring_trace=keyring_trace_copy)
147154

148155

149156
def stream(**kwargs):

0 commit comments

Comments
 (0)