pki_container_openssh: Use SSH_BUFFER_FREE()
Fixes T183 Signed-off-by: Andreas Schneider <asn@cryptomilk.org> Reviewed-by: Jakub Jelen <jjelen@redhat.com>
Этот коммит содержится в:
родитель
f422fb02f6
Коммит
d7abfe7e8f
@ -159,7 +159,7 @@ static int pki_private_key_decrypt(ssh_string blob,
|
||||
if (rc != SSH_ERROR){
|
||||
rc = ssh_buffer_unpack(buffer, "Sd", &salt, &rounds);
|
||||
}
|
||||
ssh_buffer_free(buffer);
|
||||
SSH_BUFFER_FREE(buffer);
|
||||
if (rc == SSH_ERROR){
|
||||
return SSH_ERROR;
|
||||
}
|
||||
@ -364,11 +364,11 @@ ssh_pki_openssh_import(const char *text_key,
|
||||
}
|
||||
out:
|
||||
if (buffer != NULL) {
|
||||
ssh_buffer_free(buffer);
|
||||
SSH_BUFFER_FREE(buffer);
|
||||
buffer = NULL;
|
||||
}
|
||||
if (privkey_buffer != NULL) {
|
||||
ssh_buffer_free(privkey_buffer);
|
||||
SSH_BUFFER_FREE(privkey_buffer);
|
||||
privkey_buffer = NULL;
|
||||
}
|
||||
SAFE_FREE(magic);
|
||||
@ -620,26 +620,26 @@ ssh_string ssh_pki_openssh_privkey_export(const ssh_key privkey,
|
||||
|
||||
salt = ssh_string_new(16);
|
||||
if (salt == NULL){
|
||||
ssh_buffer_free(kdf_buf);
|
||||
SSH_BUFFER_FREE(kdf_buf);
|
||||
goto error;
|
||||
}
|
||||
|
||||
ok = ssh_get_random(ssh_string_data(salt), 16, 0);
|
||||
if (!ok) {
|
||||
ssh_buffer_free(kdf_buf);
|
||||
SSH_BUFFER_FREE(kdf_buf);
|
||||
goto error;
|
||||
}
|
||||
|
||||
ssh_buffer_pack(kdf_buf, "Sd", salt, rounds);
|
||||
kdf_options = ssh_string_new(ssh_buffer_get_len(kdf_buf));
|
||||
if (kdf_options == NULL){
|
||||
ssh_buffer_free(kdf_buf);
|
||||
SSH_BUFFER_FREE(kdf_buf);
|
||||
goto error;
|
||||
}
|
||||
memcpy(ssh_string_data(kdf_options),
|
||||
ssh_buffer_get(kdf_buf),
|
||||
ssh_buffer_get_len(kdf_buf));
|
||||
ssh_buffer_free(kdf_buf);
|
||||
SSH_BUFFER_FREE(kdf_buf);
|
||||
rc = pki_private_key_encrypt(privkey_buffer,
|
||||
passphrase,
|
||||
"aes128-cbc",
|
||||
@ -709,13 +709,13 @@ error:
|
||||
if (privkey_buffer != NULL) {
|
||||
void *bufptr = ssh_buffer_get(privkey_buffer);
|
||||
explicit_bzero(bufptr, ssh_buffer_get_len(privkey_buffer));
|
||||
ssh_buffer_free(privkey_buffer);
|
||||
SSH_BUFFER_FREE(privkey_buffer);
|
||||
}
|
||||
SAFE_FREE(pubkey_s);
|
||||
SAFE_FREE(kdf_options);
|
||||
SAFE_FREE(salt);
|
||||
if (buffer != NULL) {
|
||||
ssh_buffer_free(buffer);
|
||||
SSH_BUFFER_FREE(buffer);
|
||||
}
|
||||
|
||||
return str;
|
||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user