Merge pull request #3445 from libgit2/cmn/ssl-null

openssl: don't try to teardown an unconnected SSL context
This commit is contained in:
Edward Thomson 2015-09-30 06:29:01 -07:00
commit e8ccdd6bdf

View File

@ -302,6 +302,7 @@ cert_fail_name:
typedef struct {
git_stream parent;
git_stream *io;
bool connected;
char *host;
SSL *ssl;
git_cert_x509 cert_info;
@ -318,6 +319,8 @@ int openssl_connect(git_stream *stream)
if ((ret = git_stream_connect(st->io)) < 0)
return ret;
st->connected = true;
bio = BIO_new(&git_stream_bio_method);
GITERR_CHECK_ALLOC(bio);
bio->ptr = st->io;
@ -406,9 +409,11 @@ int openssl_close(git_stream *stream)
openssl_stream *st = (openssl_stream *) stream;
int ret;
if ((ret = ssl_teardown(st->ssl)) < 0)
if (st->connected && (ret = ssl_teardown(st->ssl)) < 0)
return -1;
st->connected = false;
return git_stream_close(st->io);
}