Stop warning and fix memory leaks.
authorDr. Stephen Henson <steve@openssl.org>
Tue, 12 Apr 2011 13:02:56 +0000 (13:02 +0000)
committerDr. Stephen Henson <steve@openssl.org>
Tue, 12 Apr 2011 13:02:56 +0000 (13:02 +0000)
fips/ecdsa/fips_ecdsa_selftest.c

index c456b75099bcdc2cb60a37036234078f42c426ca..722ae673bcd92a3fe203de5a5562e0add7bc53d3 100644 (file)
@@ -97,7 +97,8 @@ int FIPS_selftest_ecdsa()
        BIGNUM *x = NULL, *y = NULL, *d = NULL;
        EVP_MD_CTX mctx;
        ECDSA_SIG *esig = NULL;
-       int i, rv = 0;
+       int rv = 0;
+       size_t i;
 
        FIPS_md_ctx_init(&mctx);
 
@@ -105,9 +106,9 @@ int FIPS_selftest_ecdsa()
                {
                EC_SELFTEST_PRIVKEY *key = test_ec_keys + i;
 
-               x = BN_bin2bn(key->x, key->xlen, NULL);
-               y = BN_bin2bn(key->y, key->ylen, NULL);
-               d = BN_bin2bn(key->d, key->dlen, NULL);
+               x = BN_bin2bn(key->x, key->xlen, x);
+               y = BN_bin2bn(key->y, key->ylen, y);
+               d = BN_bin2bn(key->d, key->dlen, d);
 
                if (!x || !y || !d)
                        goto err;
@@ -142,12 +143,14 @@ int FIPS_selftest_ecdsa()
 
                FIPS_ecdsa_sig_free(esig);
                esig = NULL;
+               EC_KEY_free(ec);
+               ec = NULL;
                }
 
        rv = 1;
 
        err:
-       
+
        if (x)
                BN_clear_free(x);
        if (y)