mirror of
https://github.com/moparisthebest/curl
synced 2024-12-24 17:18:48 -05:00
ssh: move variable declaration to where it's used
This way, we need only one call to free. Closes https://github.com/curl/curl/pull/3873
This commit is contained in:
parent
c92a4debd2
commit
320cec284d
13
lib/ssh.c
13
lib/ssh.c
@ -733,18 +733,17 @@ static CURLcode ssh_statemach_act(struct connectdata *conn, bool *block)
|
||||
|
||||
if((data->set.ssh_auth_types & CURLSSH_AUTH_PUBLICKEY) &&
|
||||
(strstr(sshc->authlist, "publickey") != NULL)) {
|
||||
char *home = NULL;
|
||||
bool out_of_memory = FALSE;
|
||||
|
||||
sshc->rsa_pub = sshc->rsa = NULL;
|
||||
|
||||
/* To ponder about: should really the lib be messing about with the
|
||||
HOME environment variable etc? */
|
||||
home = curl_getenv("HOME");
|
||||
|
||||
if(data->set.str[STRING_SSH_PRIVATE_KEY])
|
||||
sshc->rsa = strdup(data->set.str[STRING_SSH_PRIVATE_KEY]);
|
||||
else {
|
||||
/* To ponder about: should really the lib be messing about with the
|
||||
HOME environment variable etc? */
|
||||
char *home = curl_getenv("HOME");
|
||||
|
||||
/* If no private key file is specified, try some common paths. */
|
||||
if(home) {
|
||||
/* Try ~/.ssh first. */
|
||||
@ -760,6 +759,7 @@ static CURLcode ssh_statemach_act(struct connectdata *conn, bool *block)
|
||||
Curl_safefree(sshc->rsa);
|
||||
}
|
||||
}
|
||||
free(home);
|
||||
}
|
||||
if(!out_of_memory && !sshc->rsa) {
|
||||
/* Nothing found; try the current dir. */
|
||||
@ -791,7 +791,6 @@ static CURLcode ssh_statemach_act(struct connectdata *conn, bool *block)
|
||||
}
|
||||
|
||||
if(out_of_memory || sshc->rsa == NULL) {
|
||||
free(home);
|
||||
Curl_safefree(sshc->rsa);
|
||||
Curl_safefree(sshc->rsa_pub);
|
||||
state(conn, SSH_SESSION_FREE);
|
||||
@ -803,8 +802,6 @@ static CURLcode ssh_statemach_act(struct connectdata *conn, bool *block)
|
||||
if(!sshc->passphrase)
|
||||
sshc->passphrase = "";
|
||||
|
||||
free(home);
|
||||
|
||||
if(sshc->rsa_pub)
|
||||
infof(data, "Using SSH public key file '%s'\n", sshc->rsa_pub);
|
||||
infof(data, "Using SSH private key file '%s'\n", sshc->rsa);
|
||||
|
Loading…
Reference in New Issue
Block a user