Skip to content

Commit 2d902ec

Browse files
authored
Merge pull request #65 from cipherstash/dan/fix-lifetime-issue
Fixed issue where value didn't live long enough
2 parents d233c61 + aa06783 commit 2d902ec

File tree

1 file changed

+5
-3
lines changed

1 file changed

+5
-3
lines changed

src/crypto/sealed.rs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -109,13 +109,15 @@ impl SealedTableEntry {
109109
}
110110

111111
let decrypted = async_map_somes(decryptable_items, |items| cipher.decrypt(items)).await?;
112+
let mut chunks_exact = decrypted.chunks_exact(protected_attributes.len());
113+
let mut default_iter =
114+
std::iter::repeat_with::<&[Option<Plaintext>], _>(|| &[]).take(plaintext_items.len());
112115

113116
let decrypted_iter: &mut dyn Iterator<Item = &[Option<Plaintext>]> =
114117
if protected_attributes.len() > 0 {
115-
&mut decrypted.chunks_exact(protected_attributes.len())
118+
&mut chunks_exact
116119
} else {
117-
&mut std::iter::repeat_with::<&[Option<Plaintext>], _>(|| &[])
118-
.take(plaintext_items.len())
120+
&mut default_iter
119121
};
120122

121123
let unsealed = decrypted_iter

0 commit comments

Comments
 (0)