From 04f4df79c1f46faad2e0d37ef3176b4f26731871 Mon Sep 17 00:00:00 2001
From: Kubat <mael.martin31@gmail.com>
Date: Mon, 6 Nov 2023 20:41:30 +0100
Subject: [PATCH] MISC: Try to fix some "unsafe buffer usage", but most of them
 are either Ok or generated by Qt

---
 CMakeLists.txt   |  2 +-
 src/Lib/Audio.cc |  2 +-
 src/Lib/Log.cc   | 10 +++++-----
 src/Lib/Log.hh   |  6 +++---
 4 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index f5d95c03..63f57592 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -112,11 +112,11 @@ if(${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang")
 
         # Qt generated files...
         -Wno-c++98-compat -Wno-c++98-compat-pedantic -Wno-c++98-c++11-c++14-c++17-compat-pedantic -Wno-c++20-compat
-        -Wno-unsafe-buffer-usage
 
         # Different versions of MPV...
         -Wno-switch-enum
 
+        -Wno-unsafe-buffer-usage
         -Wno-source-uses-openmp
         -Wno-reserved-identifier
         -Wno-extra-semi-stmt
diff --git a/src/Lib/Audio.cc b/src/Lib/Audio.cc
index e3b6d72d..4cee764c 100644
--- a/src/Lib/Audio.cc
+++ b/src/Lib/Audio.cc
@@ -128,7 +128,7 @@ AudioStream::decodeData()
                 dataPtr                  = reinterpret_cast<double *>(
                     realloc(dataPtr, (dataSize + static_cast<size_t>(dataFrame->nb_samples)) *
                                                           sizeof(double)));
-                memcpy(dataPtr + dataSize, buffer, frame_count * sizeof(double));
+                memcpy(&dataPtr[dataSize], buffer, frame_count * sizeof(double));
                 dataSize += frame_count;
             }
         }
diff --git a/src/Lib/Log.cc b/src/Lib/Log.cc
index cf7a9485..4525b635 100644
--- a/src/Lib/Log.cc
+++ b/src/Lib/Log.cc
@@ -48,8 +48,8 @@ StderrLogSinkDispatcher::trunkFileName(const char *fileName) noexcept
 
     const std::string_view fileNameView{ fileName };
     const size_type basePath = fileNameView.rfind(basePrefix);
-    return std::string_view{ fileNameView.data() + basePath + basePrefixLen,
-                             fileNameView.data() + fileNameView.size() };
+    return std::string_view{ &fileNameView[basePath + basePrefixLen],
+                             &fileNameView[fileNameView.size()] };
 }
 
 std::string
@@ -216,7 +216,7 @@ LogMessage::operator<<(const QFileInfo &fileInfo) noexcept
 }
 
 LogMessage &
-LogMessage::operator<<(const double *ptr) noexcept
+LogMessage::operator<<(const double ptr[]) noexcept
 {
     return (*this << "Pointer{ double, " << pointerToString<double>(ptr) << " }");
 }
@@ -275,9 +275,9 @@ LogMessage::operator<<(const std::string_view strv) noexcept
 }
 
 LogMessage &
-LogMessage::operator<<(const char *str) noexcept
+LogMessage::operator<<(const char str[]) noexcept
 {
-    if (str){
+    if (str) {
         const std::size_t length = strlen(str);
         for (std::size_t i = 0; (i < length) && (indexInArray < messageBufferLength - 1);
              ++i, ++indexInArray) {
diff --git a/src/Lib/Log.hh b/src/Lib/Log.hh
index fc4b9b7a..5c6fb5ba 100644
--- a/src/Lib/Log.hh
+++ b/src/Lib/Log.hh
@@ -121,7 +121,7 @@ public:
 // that messages. It needs to be moved to its own thread and connected with the
 // queue version of the QObject::connect method.
 template <class Mutex, class MessageQueue>
-requires MutexType<Mutex>
+    requires MutexType<Mutex>
 class LogSinkUpdater final {
     VIVY_UNMOVABLE_OBJECT(LogSinkUpdater)
 
@@ -263,8 +263,8 @@ public:
     LogMessage &operator<<(const QString &) noexcept;
     LogMessage &operator<<(const QVariant &) noexcept;
     LogMessage &operator<<(const QFileInfo &) noexcept;
-    LogMessage &operator<<(const char *) noexcept;
-    LogMessage &operator<<(const double *) noexcept;
+    LogMessage &operator<<(const char[]) noexcept;
+    LogMessage &operator<<(const double[]) noexcept;
     LogMessage &operator<<(const char) noexcept;
     LogMessage &operator<<(const int) noexcept;
     LogMessage &operator<<(const long) noexcept;
-- 
GitLab