diff options
author | Nick Mathewson <nickm@torproject.org> | 2008-01-14 19:00:28 +0000 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2008-01-14 19:00:28 +0000 |
commit | d7fb8a34ac027e8ebf53c218fef2fd6a061d88cf (patch) | |
tree | 5abb7179792e939cf441a1a4869ab4464896200e | |
parent | 581ba51c5ce623e182a8dc5233c13df4e86f3d7b (diff) | |
download | tor-d7fb8a34ac027e8ebf53c218fef2fd6a061d88cf.tar.gz tor-d7fb8a34ac027e8ebf53c218fef2fd6a061d88cf.zip |
r17613@catbus: nickm | 2008-01-14 13:52:44 -0500
Do not segfault if symetric key generation somehow fails in crypto_hybrid_encrypt.
svn:r13132
-rw-r--r-- | ChangeLog | 2 | ||||
-rw-r--r-- | src/common/crypto.c | 6 |
2 files changed, 6 insertions, 2 deletions
@@ -45,6 +45,8 @@ Changes in version 0.2.0.16-alpha - 2008-01-?? - Make bridges round geoip info up, not down. - Avoid a spurious free on base64 failure. Bugfix on 0.1.2. - Detect more kinds of possible internal error. + - Avoid possible segfault if key generation fails in + crypto_pk_hybrid_encrypt. Bugfix on 0.2.0. o Minor features (controller): - Get NS events working again. (Patch from tup) diff --git a/src/common/crypto.c b/src/common/crypto.c index f76eb9d01d..6f7ffd3f58 100644 --- a/src/common/crypto.c +++ b/src/common/crypto.c @@ -858,8 +858,10 @@ crypto_pk_public_hybrid_encrypt(crypto_pk_env_t *env, crypto_free_cipher_env(cipher); return outlen + symlen; err: - memset(buf, 0, pkeylen); - tor_free(buf); + if (buf) { + memset(buf, 0, pkeylen); + tor_free(buf); + } if (cipher) crypto_free_cipher_env(cipher); return -1; } |