Selaa lähdekoodia

don't leak memory on pk ops

svn:r117
Roger Dingledine 23 vuotta sitten
vanhempi
commit
2fa4b5bb53
1 muutettua tiedostoa jossa 5 lisäystä ja 4 poistoa
  1. 5 4
      src/common/crypto.c

+ 5 - 4
src/common/crypto.c

@@ -234,10 +234,9 @@ int crypto_pk_read_private_key_from_file(crypto_pk_env_t *env, FILE *src)
   
   switch(env->type) {
     case CRYPTO_PK_RSA:
-/*
     if (env->key)
-      RSA_free((RSA *)env->key);*/
-    env->key = (unsigned char *)PEM_read_RSAPrivateKey(src, (RSA **)&env->key, NULL, NULL);
+      RSA_free((RSA *)env->key);
+    env->key = (unsigned char *)PEM_read_RSAPrivateKey(src, NULL, NULL, NULL);
     if (!env->key)
       return -1;
     break;
@@ -298,7 +297,9 @@ int crypto_pk_read_public_key_from_file(crypto_pk_env_t *env, FILE *src)
   
   switch(env->type) {
     case CRYPTO_PK_RSA:
-    env->key = (unsigned char *)PEM_read_RSAPublicKey(src, (RSA **)&env->key, NULL, NULL);
+    if(env->key)
+      RSA_free((RSA *)env->key); 
+    env->key = (unsigned char *)PEM_read_RSAPublicKey(src, NULL, NULL, NULL);
     if (!env->key)
       return -1;
     break;