diff --git a/source/backend/engine/CarlaEngineOscSend.cpp b/source/backend/engine/CarlaEngineOscSend.cpp index 670644cec..00207e99f 100644 --- a/source/backend/engine/CarlaEngineOscSend.cpp +++ b/source/backend/engine/CarlaEngineOscSend.cpp @@ -216,7 +216,7 @@ void CarlaEngineOsc::sendPluginProgramCount(const CarlaPluginPtr& plugin) const CARLA_SAFE_ASSERT_RETURN(plugin != nullptr,); carla_stdout("CarlaEngineOsc::sendPluginDataCount(%p)", plugin.get()); - char targetPath[std::strlen(fControlDataTCP.path)+7]; + char targetPath[std::strlen(fControlDataTCP.path)+8]; std::strcpy(targetPath, fControlDataTCP.path); std::strcat(targetPath, "/pcount"); try_lo_send(fControlDataTCP.target, targetPath, "iii", diff --git a/source/utils/CarlaString.hpp b/source/utils/CarlaString.hpp index 8490c5c30..b5ea18d98 100644 --- a/source/utils/CarlaString.hpp +++ b/source/utils/CarlaString.hpp @@ -788,13 +788,14 @@ public: } // we have some data ourselves, reallocate to add the new stuff - char* const newBuf = (char*)realloc(fBuffer, fBufferLen + strBufLen + 1); + char* const newBuf = (char*)realloc(fBufferAlloc ? fBuffer : nullptr, fBufferLen + strBufLen + 1); CARLA_SAFE_ASSERT_RETURN(newBuf != nullptr, *this); std::memcpy(newBuf + fBufferLen, strBuf, strBufLen + 1); fBuffer = newBuf; fBufferLen += strBufLen; + fBufferAlloc = true; return *this; }