From 219c6cc49464c627c7741a2c17171d7f61fa536c Mon Sep 17 00:00:00 2001 From: Jakub Jelen Date: Tue, 1 Dec 2020 10:34:18 +0100 Subject: [PATCH] framework-pkcs15: Avoid leaking memory when create object fails --- src/pkcs11/framework-pkcs15.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/pkcs11/framework-pkcs15.c b/src/pkcs11/framework-pkcs15.c index 2285ffbb..2fcfa617 100644 --- a/src/pkcs11/framework-pkcs15.c +++ b/src/pkcs11/framework-pkcs15.c @@ -833,10 +833,14 @@ __pkcs15_create_profile_object(struct pkcs15_fw_data *fw_data, rv = __pkcs15_create_object(fw_data, (struct pkcs15_any_object **) &pobj, obj, &pkcs15_profile_ops, sizeof(struct pkcs15_profile_object)); - if (rv >= 0) { - pobj->profile_id = public_certificates ? CKP_PUBLIC_CERTIFICATES_TOKEN : CKP_AUTHENTICATION_TOKEN; + + if (rv != SC_SUCCESS) { + free(obj); + return rv; } + pobj->profile_id = public_certificates ? CKP_PUBLIC_CERTIFICATES_TOKEN : CKP_AUTHENTICATION_TOKEN; + if (profile_object != NULL) *profile_object = (struct pkcs15_any_object *) pobj;