diff options
-rw-r--r-- | distrho/src/DistrhoPluginVST.cpp | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/distrho/src/DistrhoPluginVST.cpp b/distrho/src/DistrhoPluginVST.cpp index ef814b1d..e7ac2e54 100644 --- a/distrho/src/DistrhoPluginVST.cpp +++ b/distrho/src/DistrhoPluginVST.cpp @@ -72,9 +72,16 @@ static const writeMidiFunc writeMidiCallback = nullptr; void strncpy(char* const dst, const char* const src, const size_t size) { DISTRHO_SAFE_ASSERT_RETURN(size > 0,); - if (const size_t len = std::strlen(src)) - std::memcpy(dst, src, std::min(len, size)-1); - dst[size-1] = '\0'; + + if (const size_t len = std::min(std::strlen(src), size-1U)) + { + std::memcpy(dst, src, len); + dst[len-1] = '\0'; + } + else + { + dst[0] = '\0'; + } } void snprintf_param(char* const dst, const float value, const size_t size) |