mirror of
https://github.com/curl/curl.git
synced 2026-04-15 01:11:40 +03:00
libssh2: consider strdup() failures OOM and return correctly
In the ssh_state_pkey_init function. Closes #19791
This commit is contained in:
parent
58673ac837
commit
85a6936d76
1 changed files with 5 additions and 2 deletions
|
|
@ -1205,8 +1205,11 @@ static CURLcode ssh_state_pkey_init(struct Curl_easy *data,
|
|||
|
||||
sshc->rsa_pub = sshc->rsa = NULL;
|
||||
|
||||
if(data->set.str[STRING_SSH_PRIVATE_KEY])
|
||||
if(data->set.str[STRING_SSH_PRIVATE_KEY]) {
|
||||
sshc->rsa = curlx_strdup(data->set.str[STRING_SSH_PRIVATE_KEY]);
|
||||
if(!sshc->rsa)
|
||||
out_of_memory = TRUE;
|
||||
}
|
||||
else {
|
||||
/* To ponder about: should really the lib be messing about with the
|
||||
HOME environment variable etc? */
|
||||
|
|
@ -1251,7 +1254,7 @@ static CURLcode ssh_state_pkey_init(struct Curl_easy *data,
|
|||
* libssh2 extract the public key from the private key file.
|
||||
* This is done by simply passing sshc->rsa_pub = NULL.
|
||||
*/
|
||||
if(data->set.str[STRING_SSH_PUBLIC_KEY]
|
||||
if(!out_of_memory && data->set.str[STRING_SSH_PUBLIC_KEY]
|
||||
/* treat empty string the same way as NULL */
|
||||
&& data->set.str[STRING_SSH_PUBLIC_KEY][0]) {
|
||||
sshc->rsa_pub = curlx_strdup(data->set.str[STRING_SSH_PUBLIC_KEY]);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue