Loading changes/bug2378 +5 −0 Changes for changes/bug2378: 5 added lines, 0 removed lines. Original line number Diff line number Diff line o Minor bugfixes - Correctly detect failure to allocate an OpenSSL BIO. Fixes bug 2378; found by "cypherpunks". This bug was introduced before the first Tor release, in svn commit r110. o Minor code simplifications and refactorings - Always treat failure to allocate an RSA key as an unrecoverable allocation error. src/common/crypto.c +6 −0 Changes for src/common/crypto.c: 6 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -524,6 +524,8 @@ crypto_pk_read_private_key_from_string(crypto_pk_env_t *env, /* Create a read-only memory BIO, backed by the string 's' */ b = BIO_new_mem_buf((char*)s, (int)len); if (!b) return -1; if (env->key) RSA_free(env->key); Loading Loading @@ -584,6 +586,8 @@ crypto_pk_write_key_to_string_impl(crypto_pk_env_t *env, char **dest, tor_assert(dest); b = BIO_new(BIO_s_mem()); /* Create a memory BIO */ if (!b) return -1; /* Now you can treat b as if it were a file. Just use the * PEM_*_bio_* functions instead of the non-bio variants. Loading Loading @@ -651,6 +655,8 @@ crypto_pk_read_public_key_from_string(crypto_pk_env_t *env, const char *src, tor_assert(len<INT_MAX); b = BIO_new(BIO_s_mem()); /* Create a memory BIO */ if (!b) return -1; BIO_write(b, src, (int)len); Loading Loading
changes/bug2378 +5 −0 Changes for changes/bug2378: 5 added lines, 0 removed lines. Original line number Diff line number Diff line o Minor bugfixes - Correctly detect failure to allocate an OpenSSL BIO. Fixes bug 2378; found by "cypherpunks". This bug was introduced before the first Tor release, in svn commit r110. o Minor code simplifications and refactorings - Always treat failure to allocate an RSA key as an unrecoverable allocation error.
src/common/crypto.c +6 −0 Changes for src/common/crypto.c: 6 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -524,6 +524,8 @@ crypto_pk_read_private_key_from_string(crypto_pk_env_t *env, /* Create a read-only memory BIO, backed by the string 's' */ b = BIO_new_mem_buf((char*)s, (int)len); if (!b) return -1; if (env->key) RSA_free(env->key); Loading Loading @@ -584,6 +586,8 @@ crypto_pk_write_key_to_string_impl(crypto_pk_env_t *env, char **dest, tor_assert(dest); b = BIO_new(BIO_s_mem()); /* Create a memory BIO */ if (!b) return -1; /* Now you can treat b as if it were a file. Just use the * PEM_*_bio_* functions instead of the non-bio variants. Loading Loading @@ -651,6 +655,8 @@ crypto_pk_read_public_key_from_string(crypto_pk_env_t *env, const char *src, tor_assert(len<INT_MAX); b = BIO_new(BIO_s_mem()); /* Create a memory BIO */ if (!b) return -1; BIO_write(b, src, (int)len); Loading