diff options
-rw-r--r-- | src/stransport_stream.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/stransport_stream.c b/src/stransport_stream.c index fc5f862a6..9d87d6029 100644 --- a/src/stransport_stream.c +++ b/src/stransport_stream.c @@ -259,6 +259,7 @@ int git_stransport_stream_new(git_stream **out, const char *host, const char *po st->ctx = SSLCreateContext(NULL, kSSLClientSide, kSSLStreamType); if (!st->ctx) { giterr_set(GITERR_NET, "failed to create SSL context"); + git__free(st); return -1; } @@ -268,7 +269,8 @@ int git_stransport_stream_new(git_stream **out, const char *host, const char *po (ret = SSLSetProtocolVersionMin(st->ctx, kTLSProtocol1)) != noErr || (ret = SSLSetProtocolVersionMax(st->ctx, kTLSProtocol12)) != noErr || (ret = SSLSetPeerDomainName(st->ctx, host, strlen(host))) != noErr) { - git_stream_free((git_stream *)st); + CFRelease(st->ctx); + git__free(st); return stransport_error(ret); } |