1
0
mirror of https://github.com/libssh2/libssh2.git synced 2025-11-20 02:42:09 +03:00

Fix memory dealloc impedance mis-match #292 (#293)

When using ed25519 host keys and a custom memory allocator.
This commit is contained in:
Will Cosgrove
2019-02-20 12:00:44 -08:00
committed by GitHub
parent 5c805e23ea
commit 53aba03fef
3 changed files with 3 additions and 2 deletions

View File

@@ -828,7 +828,7 @@ hostkey_method_ssh_ed25519_init(LIBSSH2_SESSION * session,
return _libssh2_error(session, LIBSSH2_ERROR_PROTO, "could not create ED25519 public key");
}
ctx = LIBSSH2_CALLOC(session, sizeof(libssh2_ed25519_ctx));
ctx = _libssh2_ed25519_new_ctx();
if(ctx == NULL) {
return _libssh2_error(session, LIBSSH2_ERROR_ALLOC, "could not alloc public/private key");
}

View File

@@ -1590,7 +1590,7 @@ gen_publickey_from_ed25519_openssh_priv_data(LIBSSH2_SESSION *session,
goto clean_exit;
}
ctx = LIBSSH2_CALLOC(session, sizeof(libssh2_ed25519_ctx));
ctx = _libssh2_ed25519_new_ctx();
if (ctx == NULL) {
_libssh2_error(session, LIBSSH2_ERROR_ALLOC,
"Unable to allocate memory for ed25519 key");

View File

@@ -325,6 +325,7 @@ typedef struct {
#define libssh2_ed25519_ctx libssh2_curve25519_keys
#define libssh2_x25519_ctx libssh2_curve25519_keys
#define _libssh2_ed25519_new_ctx() malloc(sizeof(libssh2_ed25519_ctx))
#define _libssh2_ed25519_free(ctx) do { \
if(ctx) { \
if(ctx->public_key) EVP_PKEY_free(ctx->public_key); \