mirror of https://github.com/FreeRDP/FreeRDP
Fixed winpr-makecert for large data
Reading data from BIO did not check for completeness.
This commit is contained in:
parent
368b9f8e9c
commit
6c859b4579
|
@ -78,6 +78,7 @@ static char* makecert_read_str(BIO* bio, size_t* pOffset)
|
||||||
while (offset >= length)
|
while (offset >= length)
|
||||||
{
|
{
|
||||||
size_t new_len;
|
size_t new_len;
|
||||||
|
size_t readBytes = 0;
|
||||||
char* new_str;
|
char* new_str;
|
||||||
new_len = length * 2;
|
new_len = length * 2;
|
||||||
if (new_len == 0)
|
if (new_len == 0)
|
||||||
|
@ -99,12 +100,12 @@ static char* makecert_read_str(BIO* bio, size_t* pOffset)
|
||||||
|
|
||||||
length = new_len;
|
length = new_len;
|
||||||
x509_str = new_str;
|
x509_str = new_str;
|
||||||
status = BIO_read(bio, &x509_str[offset], (int)length - 1);
|
status = BIO_read_ex(bio, &x509_str[offset], length - offset, &readBytes);
|
||||||
|
|
||||||
if (status < 0)
|
if (status < 0)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
offset += (size_t)status;
|
offset += (size_t)readBytes;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (status < 0)
|
if (status < 0)
|
||||||
|
|
Loading…
Reference in New Issue