mirror of
https://git.proxmox.com/git/libgit2
synced 2025-05-15 15:10:12 +00:00
Fix return value of openssl_read (infinite loop)
openssl_read should return -1 in case of error. SSL_read returns values <= 0 in case of error. A return value of 0 can lead to an infinite loop, so the return value of ssl_set_error will be returned if SSL_read is not successful (analog to openssl_write).
This commit is contained in:
parent
16541b864d
commit
b726c53991
@ -522,8 +522,9 @@ ssize_t openssl_read(git_stream *stream, void *data, size_t len)
|
|||||||
openssl_stream *st = (openssl_stream *) stream;
|
openssl_stream *st = (openssl_stream *) stream;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
if ((ret = SSL_read(st->ssl, data, len)) <= 0)
|
if ((ret = SSL_read(st->ssl, data, len)) <= 0) {
|
||||||
ssl_set_error(st->ssl, ret);
|
return ssl_set_error(st->ssl, ret);
|
||||||
|
}
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user