From: Tomas Mraz Date: Wed, 6 Apr 2022 08:03:22 +0000 (+0200) Subject: sm2: Allow setting 0 length SM2 dist ID param X-Git-Tag: openssl-3.2.0-alpha1~2775 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2904d0a2ae0ec6ce23d5cec66ce8c7bdb005d4e5;p=thirdparty%2Fopenssl.git sm2: Allow setting 0 length SM2 dist ID param Fixes #18022 Reviewed-by: Paul Dale Reviewed-by: Matt Caswell (Merged from https://github.com/openssl/openssl/pull/18052) --- diff --git a/providers/implementations/signature/sm2_sig.c b/providers/implementations/signature/sm2_sig.c index 99460edfcea..3de42f496ed 100644 --- a/providers/implementations/signature/sm2_sig.c +++ b/providers/implementations/signature/sm2_sig.c @@ -430,7 +430,7 @@ static int sm2sig_set_ctx_params(void *vpsm2ctx, const OSSL_PARAM params[]) p = OSSL_PARAM_locate_const(params, OSSL_PKEY_PARAM_DIST_ID); if (p != NULL) { void *tmp_id = NULL; - size_t tmp_idlen; + size_t tmp_idlen = 0; /* * If the 'z' digest has already been computed, the ID is set too late @@ -438,7 +438,8 @@ static int sm2sig_set_ctx_params(void *vpsm2ctx, const OSSL_PARAM params[]) if (!psm2ctx->flag_compute_z_digest) return 0; - if (!OSSL_PARAM_get_octet_string(p, &tmp_id, 0, &tmp_idlen)) + if (p->data_size != 0 + && !OSSL_PARAM_get_octet_string(p, &tmp_id, 0, &tmp_idlen)) return 0; OPENSSL_free(psm2ctx->id); psm2ctx->id = tmp_id;