diff options
author | Andreas Schneider <asn@cryptomilk.org> | 2011-08-16 00:45:03 +0200 |
---|---|---|
committer | Andreas Schneider <asn@cryptomilk.org> | 2011-08-16 00:47:43 +0200 |
commit | 54a2b8a303f5d16bd1f5e60b42acad07e1d8827f (patch) | |
tree | 89dda72c4356379233bd899f08a02b49337a399b /src | |
parent | 96e338ba566ac0f32c8e59442b7ff49759762a63 (diff) | |
download | libssh-54a2b8a303f5d16bd1f5e60b42acad07e1d8827f.tar.gz libssh-54a2b8a303f5d16bd1f5e60b42acad07e1d8827f.tar.xz libssh-54a2b8a303f5d16bd1f5e60b42acad07e1d8827f.zip |
pki: Fix ssh_pki_import_pubkey_base64().
Diffstat (limited to 'src')
-rw-r--r-- | src/pki.c | 11 |
1 files changed, 11 insertions, 0 deletions
@@ -510,6 +510,7 @@ int ssh_pki_import_pubkey_base64(ssh_session session, enum ssh_keytypes_e type, ssh_key *pkey) { ssh_buffer buffer; + ssh_string type_s; int rc; if (session == NULL || b64_key == NULL || pkey == NULL) { @@ -517,6 +518,16 @@ int ssh_pki_import_pubkey_base64(ssh_session session, } buffer = base64_to_bin(b64_key); + if (buffer == NULL) { + return SSH_ERROR; + } + + type_s = buffer_get_ssh_string(buffer); + if (type_s == NULL) { + ssh_buffer_free(buffer); + return SSH_ERROR; + } + ssh_string_free(type_s); rc = pki_import_pubkey_buffer(session, buffer, type, pkey); ssh_buffer_free(buffer); |