diff --git a/sshkey.c b/sshkey.c index 33f5e734f..06db9b5da 100644 --- a/sshkey.c +++ b/sshkey.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sshkey.c,v 1.139 2023/10/11 22:41:05 djm Exp $ */ +/* $OpenBSD: sshkey.c,v 1.140 2023/10/16 08:40:00 dtucker Exp $ */ /* * Copyright (c) 2000, 2001 Markus Friedl. All rights reserved. * Copyright (c) 2008 Alexander von Gernler. All rights reserved. @@ -3422,7 +3422,6 @@ sshkey_parse_private_pem_fileblob(struct sshbuf *blob, int type, struct sshkey *prv = NULL; BIO *bio = NULL; int r; - size_t len; if (keyp != NULL) *keyp = NULL; @@ -3504,6 +3503,8 @@ sshkey_parse_private_pem_fileblob(struct sshbuf *blob, int type, #ifdef OPENSSL_HAS_ED25519 } else if (EVP_PKEY_base_id(pk) == EVP_PKEY_ED25519 && (type == KEY_UNSPEC || type == KEY_ED25519)) { + size_t len; + if ((prv = sshkey_new(KEY_UNSPEC)) == NULL || (prv->ed25519_sk = calloc(1, ED25519_SK_SZ)) == NULL || (prv->ed25519_pk = calloc(1, ED25519_PK_SZ)) == NULL) {