From 0d6057b2fa98f08a461edaf584e9ac75f7fdecde Mon Sep 17 00:00:00 2001
From: Morph <39850852+Morph1984@users.noreply.github.com>
Date: Thu, 14 Oct 2021 13:11:08 -0400
Subject: string_util: Make use of std::string_view and add bounds checking

Makes use of std::string_view in StringFromFixedZeroTerminatedBuffer and add bounds checking
---
 src/common/string_util.cpp | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

(limited to 'src/common/string_util.cpp')

diff --git a/src/common/string_util.cpp b/src/common/string_util.cpp
index 9617c3fa3b..6621711386 100644
--- a/src/common/string_util.cpp
+++ b/src/common/string_util.cpp
@@ -180,12 +180,12 @@ std::wstring UTF8ToUTF16W(const std::string& input) {
 
 #endif
 
-std::string StringFromFixedZeroTerminatedBuffer(const char* buffer, std::size_t max_len) {
+std::string StringFromFixedZeroTerminatedBuffer(std::string_view buffer, std::size_t max_len) {
     std::size_t len = 0;
-    while (len < max_len && buffer[len] != '\0')
+    while (len < buffer.length() && len < max_len && buffer[len] != '\0') {
         ++len;
-
-    return std::string(buffer, len);
+    }
+    return std::string(buffer.begin(), buffer.begin() + len);
 }
 
 std::u16string UTF16StringFromFixedZeroTerminatedBuffer(std::u16string_view buffer,
-- 
cgit v1.2.3-70-g09d2