Hello,
Viktor TARASOV wrote:
Aktiv Co. Aleksey Samsonov wrote:
Viktor TARASOV:
<skipped>
It's commited ...
Thanks, but some remarks:
Potencial memory leaks (see /* */):
Thanks for your code revision.
Thanks, but some potencial memory leaks. See patch in attachment.
Index: src/pkcs15init/pkcs15-lib.c
===================================================================
--- src/pkcs15init/pkcs15-lib.c (revision 3858)
+++ src/pkcs15init/pkcs15-lib.c (working copy)
@@ -2324,8 +2324,10 @@
SC_FUNC_RETURN(ctx, 1, 0);
}
+ rv = SC_ERROR_INTERNAL;
+
/* Skip silently if key is not inintialized. */
- if (pubkey->algorithm == SC_ALGORITHM_RSA && !pubkey->u.rsa.modulus.len)
+ if (pubkey->algorithm == SC_ALGORITHM_RSA &&
!pubkey->u.rsa.modulus.data)
goto done;
else if (pubkey->algorithm == SC_ALGORITHM_DSA &&
!pubkey->u.dsa.pub.data)
goto done;
@@ -2353,11 +2355,9 @@
size_t id_data_len = 0;
rv = sc_pkcs15_encode_pubkey(ctx, pubkey, &id_data,
&id_data_len);
- SC_TEST_RET(ctx, rv, "Encoding public key error");
+ if (rv != SC_SUCCESS || !id_data || !id_data_len)
+ goto done;
- if (!id_data || !id_data_len)
- SC_TEST_RET(ctx, SC_ERROR_INTERNAL, "Encoding public
key error");
-
SHA1(id_data, id_data_len, id->value);
id->len = SHA_DIGEST_LENGTH;
@@ -2365,14 +2365,17 @@
}
else {
sc_debug(ctx, "Unsupported ID style: %i", profile->id_style);
- SC_TEST_RET(ctx, SC_ERROR_NOT_SUPPORTED, "Non supported ID
style");
+ rv = SC_ERROR_NOT_SUPPORTED;
+ goto done;
}
+ rv = (int)id->len;
+
done:
if (allocated)
sc_pkcs15_free_pubkey(pubkey);
- SC_FUNC_RETURN(ctx, 1, id->len);
+ SC_FUNC_RETURN(ctx, 1, rv);
#endif
}
Index: src/libopensc/pkcs15-pubkey.c
===================================================================
--- src/libopensc/pkcs15-pubkey.c (revision 3858)
+++ src/libopensc/pkcs15-pubkey.c (working copy)
@@ -612,7 +612,7 @@
break;
default:
sc_debug(ctx, "Unsupported private key algorithm");
- return SC_ERROR_NOT_SUPPORTED;
+ rv = SC_ERROR_NOT_SUPPORTED;
}
if (rv)
_______________________________________________
opensc-devel mailing list
opensc-devel@lists.opensc-project.org
http://www.opensc-project.org/mailman/listinfo/opensc-devel