diff options
author | Michał Górny <mgorny@gentoo.org> | 2015-05-24 22:33:55 +0200 |
---|---|---|
committer | Michał Górny <mgorny@gentoo.org> | 2015-05-27 20:36:53 +0200 |
commit | 2629fc874da258d76a63a99566a5ba457c9d5d30 (patch) | |
tree | 3239fc99a60f2b98b5a2a5e8d8761bb8d4a79c4e | |
parent | f7142b5e4a9ce3f389f7851aac2fc98ce7bef764 (diff) | |
download | libgit2-2629fc874da258d76a63a99566a5ba457c9d5d30.tar.gz |
cred: Check for null values when getting key from memory
The public key field is optional and as such can take NULL. Account for
that and do not call strlen() on NULL values. Also assert() for non-NULL
values of username & private key.
-rw-r--r-- | src/transports/ssh.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/transports/ssh.c b/src/transports/ssh.c index 0a7422791..58f1aeb64 100644 --- a/src/transports/ssh.c +++ b/src/transports/ssh.c @@ -374,12 +374,15 @@ static int _git_ssh_authenticate_session( case GIT_CREDTYPE_SSH_MEMORY: { git_cred_ssh_key *c = (git_cred_ssh_key *)cred; + assert(c->username); + assert(c->privatekey); + rc = libssh2_userauth_publickey_frommemory( session, c->username, strlen(c->username), c->publickey, - strlen(c->publickey), + c->publickey ? strlen(c->publickey) : 0, c->privatekey, strlen(c->privatekey), c->passphrase); |