From 6c859b4579be56d02aee6473979432c649a900fc Mon Sep 17 00:00:00 2001 From: Armin Novak Date: Tue, 7 Sep 2021 13:40:49 +0200 Subject: [PATCH] Fixed winpr-makecert for large data Reading data from BIO did not check for completeness. --- winpr/tools/makecert/makecert.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/winpr/tools/makecert/makecert.c b/winpr/tools/makecert/makecert.c index bc4466359..165694849 100644 --- a/winpr/tools/makecert/makecert.c +++ b/winpr/tools/makecert/makecert.c @@ -78,6 +78,7 @@ static char* makecert_read_str(BIO* bio, size_t* pOffset) while (offset >= length) { size_t new_len; + size_t readBytes = 0; char* new_str; new_len = length * 2; if (new_len == 0) @@ -99,12 +100,12 @@ static char* makecert_read_str(BIO* bio, size_t* pOffset) length = new_len; 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) break; - offset += (size_t)status; + offset += (size_t)readBytes; } if (status < 0)