diff --git a/src/iec61850/server/impl/ied_server.c b/src/iec61850/server/impl/ied_server.c index ff1d6504..1c47e085 100644 --- a/src/iec61850/server/impl/ied_server.c +++ b/src/iec61850/server/impl/ied_server.c @@ -204,23 +204,19 @@ createMmsServerCache(IedServer self) ) { - char* variableName = StringUtils_createString(3, lnName, "$", fcName); + char variableName[65]; - if (variableName == NULL) goto exit_function; + StringUtils_createStringInBuffer(variableName, 3, lnName, "$", fcName); MmsValue* defaultValue = MmsValue_newDefaultValue(fcSpec); - if (defaultValue == NULL) { - GLOBAL_FREEMEM(variableName); + if (defaultValue == NULL) goto exit_function; - } if (DEBUG_IED_SERVER) printf("ied_server.c: Insert into cache %s - %s\n", logicalDevice->domainName, variableName); MmsServer_insertIntoCache(self->mmsServer, logicalDevice, variableName, defaultValue); - - GLOBAL_FREEMEM(variableName); } } } diff --git a/src/iec61850/server/mms_mapping/mms_mapping.c b/src/iec61850/server/mms_mapping/mms_mapping.c index 13ad7057..a99bc384 100644 --- a/src/iec61850/server/mms_mapping/mms_mapping.c +++ b/src/iec61850/server/mms_mapping/mms_mapping.c @@ -1303,6 +1303,7 @@ MmsMapping_create(IedModel* model) self->attributeAccessHandlers = LinkedList_create(); + /* create data model specification */ self->mmsDevice = createMmsModelFromIedModel(self, model); return self;