From 2629fc874da258d76a63a99566a5ba457c9d5d30 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= Date: Sun, 24 May 2015 22:33:55 +0200 Subject: [PATCH] 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. --- src/transports/ssh.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) 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);