From: Matt Caswell Date: Fri, 6 Mar 2020 18:05:37 +0000 (+0000) Subject: If the first serializer we find is the desired one that's ok X-Git-Tag: openssl-3.0.0-alpha1~283 X-Git-Url: https://git.openssl.org/gitweb/?p=openssl.git;a=commitdiff_plain;h=0e6f62e3e1c4cdaa8e3bda7d459f978541dfb1fe;hp=55ecb812b1fd71aa829c3f5ac6030f2ed437eb30;ds=sidebyside If the first serializer we find is the desired one that's ok Stop looking for a desired serializer if the first one is desired. Reviewed-by: Richard Levitte (Merged from https://github.com/openssl/openssl/pull/11271) --- diff --git a/crypto/serializer/serializer_pkey.c b/crypto/serializer/serializer_pkey.c index 3f1eb5851a..4b1bf5c3ee 100644 --- a/crypto/serializer/serializer_pkey.c +++ b/crypto/serializer/serializer_pkey.c @@ -121,13 +121,13 @@ static void select_serializer(const char *name, void *data) return; if ((s = OSSL_SERIALIZER_fetch(d->libctx, name, d->propquery)) != NULL) { - if (d->first == NULL && s->serialize_data != NULL) { - d->first = s; - } else if (OSSL_SERIALIZER_provider(s) == d->desired_provider - && s->serialize_object != NULL) { + if (OSSL_SERIALIZER_provider(s) == d->desired_provider + && s->serialize_object != NULL) { OSSL_SERIALIZER_free(d->first); d->first = NULL; d->desired = s; + } else if (d->first == NULL && s->serialize_data != NULL) { + d->first = s; } else { OSSL_SERIALIZER_free(s); }