X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavformat%2Ftls_schannel.c;h=4f0badcb8dde3ae0c406bf46fe1b5c362b5eeebb;hb=25c7aa9974af21eaae97f85bcc83e1d815ba6f6b;hp=9a6e0c92e37af7dd2278f6391ef3bba212a16ab6;hpb=0cf9fa99242a1f694e2ea3b35a450974774f56cc;p=ffmpeg diff --git a/libavformat/tls_schannel.c b/libavformat/tls_schannel.c index 9a6e0c92e37..4f0badcb8dd 100644 --- a/libavformat/tls_schannel.c +++ b/libavformat/tls_schannel.c @@ -148,7 +148,7 @@ static int tls_client_handshake_loop(URLContext *h, int initial) TLSContext *c = h->priv_data; TLSShared *s = &c->tls_shared; SECURITY_STATUS sspi_ret; - SecBuffer outbuf[3]; + SecBuffer outbuf[3] = { 0 }; SecBufferDesc outbuf_desc; SecBuffer inbuf[2]; SecBufferDesc inbuf_desc; @@ -413,11 +413,13 @@ static int tls_read(URLContext *h, uint8_t *buf, int len) ret = ffurl_read(s->tcp, c->enc_buf + c->enc_buf_offset, c->enc_buf_size - c->enc_buf_offset); - if (ret < 0) { + if (ret == AVERROR_EOF) { + c->connection_closed = 1; + ret = 0; + } else if (ret < 0) { av_log(h, AV_LOG_ERROR, "Unable to read from socket\n"); return ret; - } else if (ret == 0) - c->connection_closed = 1; + } c->enc_buf_offset += ret; } @@ -515,7 +517,7 @@ cleanup: if (ret == 0 && !c->connection_closed) ret = AVERROR(EAGAIN); - return ret < 0 ? ret : 0; + return ret < 0 ? ret : AVERROR_EOF; } static int tls_write(URLContext *h, const uint8_t *buf, int len)