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