aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarc Gilleron2016-09-29 03:15:12 +0200
committerRémi Verschelde2016-10-09 17:23:08 +0200
commit268b3446c69db60be22d75ca9f4483bfa4967657 (patch)
tree22df319333b9837d44555796b483bf36382ab1b5
parentd7925ca09db60e297b2feef531ce7083c93ef5d1 (diff)
downloadgodot-268b3446c69db60be22d75ca9f4483bfa4967657.tar.gz
godot-268b3446c69db60be22d75ca9f4483bfa4967657.tar.zst
godot-268b3446c69db60be22d75ca9f4483bfa4967657.zip
Windows: prevent huge prints from crashing the engine
(cherry picked from commit 0c09de3ef175b52937ffa2bba89a328cb282ad65)
Diffstat (limited to '')
-rw-r--r--platform/windows/os_windows.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/platform/windows/os_windows.cpp b/platform/windows/os_windows.cpp
index cebafdabc..f38bda589 100644
--- a/platform/windows/os_windows.cpp
+++ b/platform/windows/os_windows.cpp
@@ -1312,10 +1312,13 @@ void OS_Windows::finalize_core() {
void OS_Windows::vprint(const char* p_format, va_list p_list, bool p_stderr) {
- char buf[16384+1];
- int len = vsnprintf(buf,16384,p_format,p_list);
+ const unsigned int BUFFER_SIZE = 16384;
+ char buf[BUFFER_SIZE+1]; // +1 for the terminating character
+ int len = vsnprintf(buf,BUFFER_SIZE,p_format,p_list);
if (len<=0)
return;
+ if(len >= BUFFER_SIZE)
+ len = BUFFER_SIZE; // Output is too big, will be truncated
buf[len]=0;