diff --git a/src/internal/soem/soem_backend.cpp b/src/internal/soem/soem_backend.cpp index 9b75f76..6318105 100644 --- a/src/internal/soem/soem_backend.cpp +++ b/src/internal/soem/soem_backend.cpp @@ -1256,7 +1256,9 @@ SDOReadValue EthercatBus::sdo_read(const DeviceId devi } // Create an std::string out of it - return SDOReadValue(result, std::string(data.begin(), data.begin() + result.actual_size_read)); + const std::string_view raw{ data.data(), std::min(result.actual_size_read, data.size()) }; + const auto text = raw.substr(0, raw.find('\0')); + return SDOReadValue(result, std::string(text)); } template SDOReadValue EthercatBus::sdo_read(DeviceId, SDOIndex, SDOSubIndex);