diff --git a/src/iec61850/server/impl/ied_server.c b/src/iec61850/server/impl/ied_server.c index 16ec66f4..05a7eedd 100644 --- a/src/iec61850/server/impl/ied_server.c +++ b/src/iec61850/server/impl/ied_server.c @@ -1692,6 +1692,6 @@ void IedServer_setGooseInterfaceId(IedServer self, const char* interfaceId) { #if (CONFIG_INCLUDE_GOOSE_SUPPORT == 1) - self->mmsMapping->gooseInterfaceId = interfaceId; + self->mmsMapping->gooseInterfaceId = StringUtils_copyString(interfaceId); #endif } diff --git a/src/iec61850/server/mms_mapping/mms_mapping.c b/src/iec61850/server/mms_mapping/mms_mapping.c index 985bcc41..c326b76c 100644 --- a/src/iec61850/server/mms_mapping/mms_mapping.c +++ b/src/iec61850/server/mms_mapping/mms_mapping.c @@ -2015,6 +2015,7 @@ MmsMapping_destroy(MmsMapping* self) #if (CONFIG_INCLUDE_GOOSE_SUPPORT == 1) LinkedList_destroyDeep(self->gseControls, (LinkedListValueDeleteFunction) MmsGooseControlBlock_destroy); + if (self->gooseInterfaceId) GLOBAL_FREEMEM(self->gooseInterfaceId); #endif #if (CONFIG_IEC61850_SAMPLED_VALUES_SUPPORT == 1)