From e057e41122cbcfef60b7ab0283cbcda44df538c7 Mon Sep 17 00:00:00 2001 From: Brad Morgan Date: Wed, 15 May 2013 12:44:51 -0400 Subject: [PATCH] Reworked git_cred_ssh_keyfile_passphrase_new method --- src/transports/cred.c | 44 +++++++++++-------------------------------- 1 file changed, 11 insertions(+), 33 deletions(-) diff --git a/src/transports/cred.c b/src/transports/cred.c index e4d205ea2..bc37d84ae 100644 --- a/src/transports/cred.c +++ b/src/transports/cred.c @@ -90,48 +90,26 @@ int git_cred_ssh_keyfile_passphrase_new( { git_cred_ssh_keyfile_passphrase *c; - if (!cred) - return -1; + assert(cred && privatekey); - c = git__malloc(sizeof(git_cred_ssh_keyfile_passphrase)); + c = git__calloc(1, sizeof(git_cred_ssh_keyfile_passphrase)); GITERR_CHECK_ALLOC(c); c->parent.credtype = GIT_CREDTYPE_SSH_KEYFILE_PASSPHRASE; c->parent.free = ssh_keyfile_passphrase_free; c->privatekey = git__strdup(privatekey); - - if (!c->privatekey) { - git__free(c); - return -1; - } + GITERR_CHECK_ALLOC(c->privatekey); if (publickey) { - c->publickey = git__strdup(publickey); - - if (!c->publickey) { - git__free(c->privatekey); - git__free(c); - return -1; - } - } else { - c->publickey = NULL; - } - - if (passphrase) { - c->passphrase = git__strdup(passphrase); - - if (!c->passphrase) { - git__free(c->privatekey); - if (c->publickey) { - git__free(c->publickey); - } - git__free(c); - return -1; - } - } else { - c->passphrase = NULL; - } + c->publickey = git__strdup(publickey); + GITERR_CHECK_ALLOC(c->publickey); + } + + if (passphrase) { + c->passphrase = git__strdup(passphrase); + GITERR_CHECK_ALLOC(c->passphrase); + } *cred = &c->parent; return 0;