From 8bc7b75e11f3e1d55dc2a1fd1de2400979954d0e Mon Sep 17 00:00:00 2001 From: Michael Zillgith Date: Wed, 5 Aug 2020 15:00:17 +0200 Subject: [PATCH] - IEC 61850 server: fixed crash in control service tracking when application doesn't register control handler --- src/iec61850/server/mms_mapping/control.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/iec61850/server/mms_mapping/control.c b/src/iec61850/server/mms_mapping/control.c index 60b6a023..4bad318d 100644 --- a/src/iec61850/server/mms_mapping/control.c +++ b/src/iec61850/server/mms_mapping/control.c @@ -189,12 +189,10 @@ updateGenericTrackingObjectValues(MmsMapping* self, ControlObject* controlObject char objRef[129]; /* create object reference */ - LogicalNode* ln = (LogicalNode*) controlObject->dataObject->parent; /* TODO also handle SDO case ! */ - LogicalDevice* ld = (LogicalDevice*) ln->parent; + char* ldName = controlObject->mmsDomain->domainName; + char* lnName = controlObject->lnName; - char* iedName = self->iedServer->mmsDevice->deviceName; - - snprintf(objRef, 129, "%s%s/%s", iedName, ld->name, controlObject->name); + snprintf(objRef, 129, "%s/%s.%s", ldName, lnName, controlObject->name); if (trkInst->objRef) { IedServer_updateVisibleStringAttributeValue(self->iedServer, trkInst->objRef, objRef);