From 1df5b5bf8d2988f57d9fe9c5f6aa903c9de0fb4e Mon Sep 17 00:00:00 2001 From: Neil Date: Sun, 12 Dec 2021 09:32:18 +1100 Subject: Ensure enough room for NUL terminator in string return values. --- qt/ScintillaEdit/ScintillaEdit.cpp.template | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'qt/ScintillaEdit/ScintillaEdit.cpp.template') diff --git a/qt/ScintillaEdit/ScintillaEdit.cpp.template b/qt/ScintillaEdit/ScintillaEdit.cpp.template index 9cebc8300..a46a1d12d 100644 --- a/qt/ScintillaEdit/ScintillaEdit.cpp.template +++ b/qt/ScintillaEdit/ScintillaEdit.cpp.template @@ -13,11 +13,12 @@ ScintillaEdit::~ScintillaEdit() { } QByteArray ScintillaEdit::TextReturner(int message, uptr_t wParam) const { - int length = send(message, wParam, 0); - QByteArray ba(length, '\0'); + // While Scintilla can return strings longer than maximum(int), QByteArray uses int size + const int length = static_cast(send(message, wParam, 0)); + QByteArray ba(length + 1, '\0'); send(message, wParam, (sptr_t)ba.data()); // Remove extra NULs - if (ba.size() > 0 && ba.at(ba.size()-1) == 0) + if (ba.at(ba.size()-1) == 0) ba.chop(1); return ba; } -- cgit v1.2.3