From a2c263bf12657cea45485b50eec3094591733806 Mon Sep 17 00:00:00 2001 From: Scott Miller Date: Thu, 7 Dec 2023 12:17:24 -0600 Subject: [PATCH] Fix two potential channel hangs in access.tryDecrypt (#24418) * Fix two potential channel hangs in access.tryDecrypt * could also live here --- vault/seal/seal.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/vault/seal/seal.go b/vault/seal/seal.go index e54e644473..e2ac8faba1 100644 --- a/vault/seal/seal.go +++ b/vault/seal/seal.go @@ -720,7 +720,7 @@ func (a *access) Decrypt(ctx context.Context, ciphertext *MultiWrapValue, option for _, sealWrapper := range wrappersByPriority { keyId, err := sealWrapper.Wrapper.KeyId(ctx) if err != nil { - reportResult(sealWrapper.Name, nil, false, err) + go reportResult(sealWrapper.Name, nil, false, err) continue } if keyId == k { @@ -765,6 +765,7 @@ GATHER_RESULTS: break GATHER_RESULTS } } + close(resultCh) // No wrapper was able to decrypt the value, return an error if len(errs) > 0 {