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:
17
src/pki.c
17
src/pki.c
@@ -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;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user