1
0
mirror of https://git.libssh.org/projects/libssh.git synced 2025-08-08 19:02:06 +03:00

pki: Use strndup in ssh_pki_export_privkey_base64()

Signed-off-by: Andreas Schneider <asn@cryptomilk.org>
This commit is contained in:
Andreas Schneider
2018-09-04 21:59:13 +02:00
parent 8410f43d8b
commit e4711c469f

View File

@@ -620,8 +620,8 @@ int ssh_pki_export_privkey_base64(const ssh_key privkey,
void *auth_data, void *auth_data,
char **b64_key) char **b64_key)
{ {
ssh_string blob; ssh_string blob = NULL;
unsigned char *b64; char *b64 = NULL;
if (privkey == NULL || !ssh_key_is_private(privkey)) { if (privkey == NULL || !ssh_key_is_private(privkey)) {
return SSH_ERROR; return SSH_ERROR;
@@ -642,18 +642,13 @@ int ssh_pki_export_privkey_base64(const ssh_key privkey,
return SSH_ERROR; return SSH_ERROR;
} }
b64 = strndup(ssh_string_data(blob), ssh_string_len(blob));
b64 = malloc(ssh_string_len(blob)); ssh_string_free(blob);
if(b64 == NULL){ if (b64 == NULL) {
ssh_string_free(blob);
return SSH_ERROR; return SSH_ERROR;
} }
memcpy(b64,ssh_string_data(blob),ssh_string_len(blob)); *b64_key = b64;
ssh_string_free(blob);
*b64_key = (char *)b64;
return SSH_OK; return SSH_OK;
} }