diff --git a/lib/nodes/iec60870.cpp b/lib/nodes/iec60870.cpp index a0af9ee6a..d3683bb76 100644 --- a/lib/nodes/iec60870.cpp +++ b/lib/nodes/iec60870.cpp @@ -260,7 +260,7 @@ bool ASDUData::addSampleToASDU(CS101_ASDU &asdu, ASDUData::Sample sample) const ? std::optional { timespec_to_cp56time2a(sample.timestamp.value()) } : std::nullopt; - InformationObject io; + InformationObject io = nullptr; switch (descriptor->type) { case ASDUData::SCALED_INT: { auto scaled_int_value = static_cast(sample.signal_data.i & 0xFFFF); @@ -337,6 +337,7 @@ bool ASDUData::addSampleToASDU(CS101_ASDU &asdu, ASDUData::Sample sample) const } bool successfully_added = CS101_ASDU_addInformationObject(asdu, io); + InformationObject_destroy(io); return successfully_added;