summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDr. David von Oheimb <David.von.Oheimb@siemens.com>2020-05-04 19:53:09 +0200
committerDr. David von Oheimb <David.von.Oheimb@siemens.com>2020-05-09 16:57:08 +0200
commit045229cfe88aba44f8b67e7306281f6fbf516625 (patch)
treef0215abf95fe03752c1c3329981f955b22147a76
parent8c30dfee3ea038b71f339f193331ed6ac11e3055 (diff)
Fix bug in OSSL_CMP_SRV_process_request() on transaction renewal
Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Viktor Dukhovni <viktor@openssl.org> (Merged from https://github.com/openssl/openssl/pull/11736)
-rw-r--r--crypto/cmp/cmp_server.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/crypto/cmp/cmp_server.c b/crypto/cmp/cmp_server.c
index 4da9a4436f..8bd3b56a26 100644
--- a/crypto/cmp/cmp_server.c
+++ b/crypto/cmp/cmp_server.c
@@ -489,9 +489,9 @@ OSSL_CMP_MSG *OSSL_CMP_SRV_process_request(OSSL_CMP_SRV_CTX *srv_ctx,
tid);
OPENSSL_free(tid);
}
- /* start of a new transaction, set transactionID and senderNonce */
- if (!OSSL_CMP_CTX_set1_transactionID(ctx, hdr->transactionID)
- || !ossl_cmp_ctx_set1_recipNonce(ctx, hdr->senderNonce))
+ /* start of a new transaction, reset transactionID and senderNonce */
+ if (!OSSL_CMP_CTX_set1_transactionID(ctx, NULL)
+ || !OSSL_CMP_CTX_set1_senderNonce(ctx, NULL))
goto err;
break;
default:
@@ -594,7 +594,9 @@ OSSL_CMP_MSG *OSSL_CMP_SRV_process_request(OSSL_CMP_SRV_CTX *srv_ctx,
case OSSL_CMP_PKIBODY_GENP:
case OSSL_CMP_PKIBODY_ERROR:
/* TODO possibly support further terminating response message types */
- (void)OSSL_CMP_CTX_set1_transactionID(ctx, NULL); /* ignore any error */
+ /* prepare for next transaction, ignoring any errors here: */
+ (void)OSSL_CMP_CTX_set1_transactionID(ctx, NULL);
+ (void)OSSL_CMP_CTX_set1_senderNonce(ctx, NULL);
default: /* not closing transaction in other cases */
break;