diff --git a/src/mms/iso_mms/server/mms_server.c b/src/mms/iso_mms/server/mms_server.c index 89454563..0dedfc34 100644 --- a/src/mms/iso_mms/server/mms_server.c +++ b/src/mms/iso_mms/server/mms_server.c @@ -530,7 +530,11 @@ getComponentOfArrayElement(AlternateAccess_t* alternateAccess, MmsVariableSpecif if (strncmp(structSpec->typeSpec.structure.elements[i]->name, (char*)component.buf, component.size) == 0) { - snprintf(dataRefBuf, 129, "%s.%s", dataRefBuf, (char*)component.buf); + char buf[129]; + strcpy(buf, dataRefBuf); + strcat(buf, "."); + strcat(buf, (char*)component.buf); + snprintf(dataRefBuf, 129, "%s", buf); MmsValue* value = MmsValue_getElement(structuredValue, i); @@ -630,7 +634,13 @@ mmsServer_setValueWithAlternateAccess(MmsServer self, MmsDomain* domain, char* i int index = mmsServer_getLowIndex(alternateAccess); int numberOfElements = mmsServer_getNumberOfElements(alternateAccess); - snprintf(dataRefBuf, 129, "%s(%d)", dataRefBuf, index); + char buf[129]; + strcpy(buf, dataRefBuf); + char str[13]; + snprintf(str, 12, "(%d)", index); + str[12] = 0; + strcat(buf, str); + snprintf(dataRefBuf, 129, "%s", buf); if (numberOfElements == 0) { /* select single array element with index */