summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Straub <bs@github.com>2013-01-31 15:24:59 -0800
committerBen Straub <bs@github.com>2013-01-31 15:24:59 -0800
commit8c36a3cdba57ce5fb81d81dc3186f3ff9f2702f7 (patch)
treeef27dc671eed308632c74f053634cb2ae3ce2a1b
parent016179d6681255be0557040f7fd50a917e094fd8 (diff)
downloadlibgit2-8c36a3cdba57ce5fb81d81dc3186f3ff9f2702f7.tar.gz
Remove double-free segfaults
-rw-r--r--src/transports/git.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/src/transports/git.c b/src/transports/git.c
index 21de4d789..a36a0a71c 100644
--- a/src/transports/git.c
+++ b/src/transports/git.c
@@ -179,7 +179,7 @@ static int _git_uploadpack_ls(
const char *url,
git_smart_subtransport_stream **stream)
{
- char *host, *port, *user, *pass;
+ char *host, *port, *user=NULL, *pass=NULL;
git_stream *s;
*stream = NULL;
@@ -201,8 +201,8 @@ static int _git_uploadpack_ls(
t->current_stream = s;
git__free(host);
git__free(port);
- git__free(user);
- git__free(pass);
+ if (user) git__free(user);
+ if (pass) git__free(pass);
return 0;
on_error:
@@ -235,7 +235,7 @@ static int _git_receivepack_ls(
const char *url,
git_smart_subtransport_stream **stream)
{
- char *host, *port, *user, *pass;
+ char *host, *port, *user=NULL, *pass=NULL;
git_stream *s;
*stream = NULL;
@@ -257,8 +257,8 @@ static int _git_receivepack_ls(
t->current_stream = s;
git__free(host);
git__free(port);
- git__free(user);
- git__free(pass);
+ if (user) git__free(user);
+ if (pass) git__free(pass);
return 0;
on_error: