From b52ec314129e9c90e4e584227cd5016c17dae13a Mon Sep 17 00:00:00 2001 From: Kevin Jhang Date: Sat, 28 May 2022 03:57:28 +0800 Subject: [PATCH] - fixed string concatenate error on Linux --- src/mms/iso_mms/server/mms_server.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) 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 */