aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--apps/lib/cmp_mock_srv.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/apps/lib/cmp_mock_srv.c b/apps/lib/cmp_mock_srv.c
index c538c04d287..e8a289f3134 100644
--- a/apps/lib/cmp_mock_srv.c
+++ b/apps/lib/cmp_mock_srv.c
@@ -274,8 +274,11 @@ static int refcert_cmp(const X509 *refcert,
return 1;
ref_issuer = X509_get_issuer_name(refcert);
ref_serial = X509_get0_serialNumber(refcert);
- return (ref_issuer == NULL || X509_NAME_cmp(issuer, ref_issuer) == 0)
- && (ref_serial == NULL || ASN1_INTEGER_cmp(serial, ref_serial) == 0);
+ if (ref_issuer != NULL
+ && (issuer == NULL || X509_NAME_cmp(issuer, ref_issuer) != 0))
+ return 0;
+ return ref_serial == NULL
+ || (serial != NULL && ASN1_INTEGER_cmp(serial, ref_serial) == 0);
}
/* reset the state that belongs to a transaction */