From f1ad63380ea954ae42c26d0a4fc0e46574cd9e5f Mon Sep 17 00:00:00 2001 From: Neil Date: Mon, 29 Mar 2021 09:03:04 +1100 Subject: Modify ListBox::GetValue to return a std::string to avoid fixed size buffers and the possibility of truncation. --- qt/ScintillaEditBase/PlatQt.cpp | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) (limited to 'qt/ScintillaEditBase/PlatQt.cpp') diff --git a/qt/ScintillaEditBase/PlatQt.cpp b/qt/ScintillaEditBase/PlatQt.cpp index ee91f8311..b9d6a0351 100644 --- a/qt/ScintillaEditBase/PlatQt.cpp +++ b/qt/ScintillaEditBase/PlatQt.cpp @@ -953,7 +953,7 @@ public: void Select(int n) override; int GetSelection() override; int Find(const char *prefix) override; - void GetValue(int n, char *value, int len) override; + std::string GetValue(int n) override; void RegisterImage(int type, const char *xpmData) override; void RegisterRGBAImage(int type, int width, int height, const unsigned char *pixelsImage) override; @@ -1128,15 +1128,13 @@ int ListBoxImpl::Find(const char *prefix) return result; } -void ListBoxImpl::GetValue(int n, char *value, int len) +std::string ListBoxImpl::GetValue(int n) { ListWidget *list = GetWidget(); QListWidgetItem *item = list->item(n); QString str = item->data(Qt::DisplayRole).toString(); QByteArray bytes = unicodeMode ? str.toUtf8() : str.toLocal8Bit(); - - strncpy(value, bytes.constData(), len); - value[len-1] = '\0'; + return std::string(bytes.constData()); } void ListBoxImpl::RegisterQPixmapImage(int type, const QPixmap& pm) -- cgit v1.2.3