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

Reply via email to