Переглянути джерело

Merge branch 'maint-0.2.4' into maint-0.2.5

Nick Mathewson 7 роки тому
батько
коміт
6b37512dc7
2 змінених файлів з 10 додано та 1 видалено
  1. 7 0
      changes/rsa_init_bug
  2. 3 1
      src/common/crypto.c

+ 7 - 0
changes/rsa_init_bug

@@ -0,0 +1,7 @@
+  o Major bugfixes (key management):
+    - If OpenSSL fails to generate an RSA key, do not retain a dangling pointer
+      to the previous (uninitialized) key value. The impact here should be
+      limited to a difficult-to-trigger crash, if OpenSSL is running an
+      engine that makes key generation failures possible, or if OpenSSL runs
+      out of memory. Fixes bug 19152; bugfix on 0.2.1.10-alpha. Found by
+      Yuan Jochen Kang, Suman Jana, and Baishakhi Ray.

+ 3 - 1
src/common/crypto.c

@@ -557,8 +557,10 @@ crypto_pk_generate_key_with_bits(crypto_pk_t *env, int bits)
 {
   tor_assert(env);
 
-  if (env->key)
+  if (env->key) {
     RSA_free(env->key);
+    env->key = NULL;
+  }
 
   {
     BIGNUM *e = BN_new();