diff options
author | Kamil Dudka <kdudka@redhat.com> | 2016-01-15 10:27:33 +0100 |
---|---|---|
committer | Kamil Dudka <kdudka@redhat.com> | 2016-01-15 10:34:34 +0100 |
commit | be538e07667e1ba880b7201014be706851428d40 (patch) | |
tree | 9b83fad08548ded78b25c146ba2408ea737de4b0 /lib/ssh.c | |
parent | be79d83b0099ee8dcad7ccf9e60ec75ab827e892 (diff) | |
download | curl-be538e07667e1ba880b7201014be706851428d40.tar.gz |
ssh: make CURLOPT_SSH_PUBLIC_KEYFILE treat "" as NULL
The CURLOPT_SSH_PUBLIC_KEYFILE option has been documented to handle
empty strings specially since curl-7_25_0-31-g05a443a but the behavior
was unintentionally removed in curl-7_38_0-47-gfa7d04f.
This commit restores the original behavior and clarifies it in the
documentation that NULL and "" have both the same meaning when passed
to CURLOPT_SSH_PUBLIC_KEYFILE.
Bug: http://curl.haxx.se/mail/lib-2016-01/0072.html
Diffstat (limited to 'lib/ssh.c')
-rw-r--r-- | lib/ssh.c | 7 |
1 files changed, 5 insertions, 2 deletions
@@ -848,7 +848,9 @@ static CURLcode ssh_statemach_act(struct connectdata *conn, bool *block) * 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(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 = strdup(data->set.str[STRING_SSH_PUBLIC_KEY]); if(!sshc->rsa_pub) out_of_memory = TRUE; @@ -869,7 +871,8 @@ static CURLcode ssh_statemach_act(struct connectdata *conn, bool *block) free(home); - infof(data, "Using SSH public key file '%s'\n", sshc->rsa_pub); + 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); state(conn, SSH_AUTH_PKEY); |