1
0
mirror of https://git.libssh.org/projects/libssh.git synced 2025-11-27 13:21:11 +03:00

wrapper: Fix possible crash in ssh_handle_key_exchange()

If ssh_handle_key_exchange() fails, when ssh_free() is called
cipher->ctx is NULL.

Signed-off-by: debevv <valerio@sonicpengu.in>
This commit is contained in:
debevv
2017-06-06 09:28:58 +02:00
committed by Andreas Schneider
parent 5333be5988
commit 48e7b098f8

View File

@@ -120,12 +120,14 @@ void ssh_cipher_clear(struct ssh_cipher_struct *cipher){
SAFE_FREE(cipher->key); SAFE_FREE(cipher->key);
} }
#endif #endif
if (cipher->cleanup != NULL){ if (cipher->ctx != NULL) {
cipher->cleanup(cipher); if (cipher->cleanup != NULL) {
} cipher->cleanup(cipher);
}
#ifdef HAVE_LIBCRYPTO #ifdef HAVE_LIBCRYPTO
EVP_CIPHER_CTX_free(cipher->ctx); EVP_CIPHER_CTX_free(cipher->ctx);
#endif #endif
}
} }
static void cipher_free(struct ssh_cipher_struct *cipher) { static void cipher_free(struct ssh_cipher_struct *cipher) {