From bfe978f355d94f22aa6fa71e16003206831bf122 Mon Sep 17 00:00:00 2001 From: falkTX Date: Tue, 3 Apr 2018 13:11:05 +0200 Subject: [PATCH] Better handling for plugins that set 0-size state --- source/backend/engine/CarlaEngineBridge.cpp | 4 +++- source/backend/plugin/CarlaPluginBridge.cpp | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/source/backend/engine/CarlaEngineBridge.cpp b/source/backend/engine/CarlaEngineBridge.cpp index 65e49bbd8..a312f0ddc 100644 --- a/source/backend/engine/CarlaEngineBridge.cpp +++ b/source/backend/engine/CarlaEngineBridge.cpp @@ -877,7 +877,9 @@ public: fShmNonRtServerControl.writeCustomData(cdata.key, keyLen); fShmNonRtServerControl.writeUInt(valueLen); - fShmNonRtServerControl.writeCustomData(cdata.value, valueLen); + + if (valueLen > 0) + fShmNonRtServerControl.writeCustomData(cdata.value, valueLen); fShmNonRtServerControl.commitWrite(); fShmNonRtServerControl.waitIfDataIsReachingLimit(); diff --git a/source/backend/plugin/CarlaPluginBridge.cpp b/source/backend/plugin/CarlaPluginBridge.cpp index 3b377bc42..6692a8ad8 100644 --- a/source/backend/plugin/CarlaPluginBridge.cpp +++ b/source/backend/plugin/CarlaPluginBridge.cpp @@ -2115,7 +2115,9 @@ public: const uint32_t valueSize(fShmNonRtServerControl.readUInt()); char value[valueSize+1]; carla_zeroChars(value, valueSize+1); - fShmNonRtServerControl.readCustomData(value, valueSize); + + if (valueSize > 0) + fShmNonRtServerControl.readCustomData(value, valueSize); CarlaPlugin::setCustomData(type, key, value, false); } break;