From 138523cb1b3bc4f23ba46d719c1da9a7c4762a27 Mon Sep 17 00:00:00 2001 From: Tomas Mraz Date: Thu, 21 Apr 2022 17:33:26 +0200 Subject: [PATCH] poly1305: Properly copy the whole context on dup Also reset the updated flag when Poly1305_Init is called. --- providers/implementations/macs/poly1305_prov.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/providers/implementations/macs/poly1305_prov.c b/providers/implementations/macs/poly1305_prov.c index ad67216d2a4b4..28789d25c81da 100644 --- a/providers/implementations/macs/poly1305_prov.c +++ b/providers/implementations/macs/poly1305_prov.c @@ -65,11 +65,11 @@ static void *poly1305_dup(void *vsrc) if (!ossl_prov_is_running()) return NULL; - dst = poly1305_new(src->provctx); + dst = OPENSSL_malloc(sizeof(*dst)); if (dst == NULL) return NULL; - dst->poly1305 = src->poly1305; + *dst = *src; return dst; } @@ -86,6 +86,7 @@ static int poly1305_setkey(struct poly1305_data_st *ctx, return 0; } Poly1305_Init(&ctx->poly1305, key); + ctx->updated = 0; return 1; }