From 695dc5362fb7e1d833b60a60716f3f9a6789ab09 Mon Sep 17 00:00:00 2001 From: Min-Young Date: Thu, 13 Jun 2019 13:12:30 +0900 Subject: [PATCH 1/4] Memory leak fixed --- CMakeLists.txt | 304 +++++++++++++++++++++ cmake-build-debug/CMakeFiles/clion-log.txt | 1 + development/src/GXBytebuffer.cpp | 13 +- 3 files changed, 313 insertions(+), 5 deletions(-) create mode 100644 CMakeLists.txt create mode 100644 cmake-build-debug/CMakeFiles/clion-log.txt diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 00000000..3b1a90ac --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,304 @@ +# cmake_minimum_required(VERSION ) +project(Gurux_DLMS_cpp) + +set(CMAKE_CXX_STANDARD 14) + +include_directories(development/include) +include_directories(GuruxDLMSClientExample/include) +include_directories(GuruxDLMSPushExample/include) +include_directories(GuruxDLMSServerExample/include) +include_directories(mbed/GuruxDLMSClientExample) + +add_executable(Gurux_DLMS_cpp + development/include/chipperingenums.h + development/include/enums.h + development/include/errorcodes.h + development/include/GXAdjacentCell.h + development/include/GXAPDU.h + development/include/GXApplicationContextName.h + development/include/GXAttributeCollection.h + development/include/GXAuthentication.h + development/include/GXAuthenticationMechanismName.h + development/include/GXBytebuffer.h + development/include/GXChargePerUnitScaling.h + development/include/GXChargeTable.h + development/include/GXCipher.h + development/include/GXCommodity.h + development/include/GXCreditChargeConfiguration.h + development/include/GXCurrency.h + development/include/GXDataInfo.h + development/include/GXDate.h + development/include/GXDateTime.h + development/include/GXDLMS.h + development/include/GXDLMSAccount.h + development/include/GXDLMSActionItem.h + development/include/GXDLMSActionSchedule.h + development/include/GXDLMSActionSet.h + development/include/GXDLMSActivityCalendar.h + development/include/GXDLMSAssociationLogicalName.h + development/include/GXDLMSAssociationShortName.h + development/include/GXDLMSAttribute.h + development/include/GXDLMSAutoAnswer.h + development/include/GXDLMSAutoConnect.h + development/include/GXDLMSCaptureObject.h + development/include/GXDLMSCertificateInfo.h + development/include/GXDLMSCharge.h + development/include/GXDLMSClient.h + development/include/GXDLMSClock.h + development/include/GXDLMSCompactData.h + development/include/GXDLMSConnectionEventArgs.h + development/include/GXDLMSContextType.h + development/include/GXDLMSConverter.h + development/include/GXDLMSCredit.h + development/include/GXDLMSData.h + development/include/GXDLMSDayProfile.h + development/include/GXDLMSDayProfileAction.h + development/include/GXDLMSDemandRegister.h + development/include/GXDLMSDisconnectControl.h + development/include/GXDLMSEmergencyProfile.h + development/include/GXDLMSExtendedRegister.h + development/include/GXDLMSGPRSSetup.h + development/include/GXDLMSGSMCellInfo.h + development/include/GXDLMSGSMDiagnostic.h + development/include/GXDLMSHdlcSetup.h + development/include/GXDLMSIECOpticalPortSetup.h + development/include/GXDLMSImageActivateInfo.h + development/include/GXDLMSImageTransfer.h + development/include/GXDLMSIp4Setup.h + development/include/GXDLMSIp4SetupIpOption.h + development/include/GXDLMSLimiter.h + development/include/GXDLMSLimits.h + development/include/GXDLMSLNCommandHandler.h + development/include/GXDLMSLNParameters.h + development/include/GXDLMSLongTransaction.h + development/include/GXDLMSMacAddressSetup.h + development/include/GXDLMSMBusClient.h + development/include/GXDLMSMBusMasterPortSetup.h + development/include/GXDLMSMBusSlavePortSetup.h + development/include/GXDLMSMd5.h + development/include/GXDLMSMessageHandler.h + development/include/GXDLMSModemConfiguration.h + development/include/GXDLMSModemInitialisation.h + development/include/GXDLMSMonitoredValue.h + development/include/GXDLMSNotify.h + development/include/GXDLMSObject.h + development/include/GXDLMSObjectCollection.h + development/include/GXDLMSObjectDefinition.h + development/include/GXDLMSObjectFactory.h + development/include/GXDLMSParameterMonitor.h + development/include/GXDLMSPppSetup.h + development/include/GXDLMSPppSetupIPCPOption.h + development/include/GXDLMSPppSetupLcpOption.h + development/include/GXDLMSProfileGeneric.h + development/include/GXDLMSPushObject.h + development/include/GXDLMSPushSetup.h + development/include/GXDLMSQualityOfService.h + development/include/GXDLMSRegister.h + development/include/GXDLMSRegisterActivation.h + development/include/GXDLMSRegisterMonitor.h + development/include/GXDLMSSapAssignment.h + development/include/GXDLMSSchedule.h + development/include/GXDLMSScheduleEntry.h + development/include/GXDLMSScript.h + development/include/GXDLMSScriptAction.h + development/include/GXDLMSScriptTable.h + development/include/GXDLMSSeasonProfile.h + development/include/GXDLMSSecureClient.h + development/include/GXDLMSSecureServer.h + development/include/GXDLMSSecuritySetup.h + development/include/GXDLMSServer.h + development/include/GXDLMSSettings.h + development/include/GXDLMSSha1.h + development/include/GXDLMSSha256.h + development/include/GXDLMSSNCommandHandler.h + development/include/GXDLMSSNParameters.h + development/include/GXDLMSSpecialDay.h + development/include/GXDLMSSpecialDaysTable.h + development/include/GXDLMSTarget.h + development/include/GXDLMSTcpUdpSetup.h + development/include/GXDLMSTokenGateway.h + development/include/GXDLMSTranslator.h + development/include/GXDLMSTranslatorStructure.h + development/include/GXDLMSUtilityTables.h + development/include/GXDLMSValueEventArg.h + development/include/GXDLMSValueEventCollection.h + development/include/GXDLMSVariant.h + development/include/GXDLMSWeekProfile.h + development/include/GXHelpers.h + development/include/GXReplyData.h + development/include/GXSecure.h + development/include/GXSerialNumberCounter.h + development/include/GXServerReply.h + development/include/GXSNInfo.h + development/include/GXStandardObisCode.h + development/include/GXStandardObisCodeCollection.h + development/include/GXTime.h + development/include/GXTokenGatewayConfiguration.h + development/include/GXUnitCharge.h + development/include/IGXDLMSBase.h + development/include/OBiscodes.h + development/include/TranslatorGeneralTags.h + development/include/TranslatorSimpleTags.h + development/include/TranslatorStandardTags.h + development/include/TranslatorTags.h + development/src/GXAdjacentCell.cpp + development/src/GXAPDU.cpp + development/src/GXApplicationContextName.cpp + development/src/GXAuthenticationMechanismName.cpp + development/src/GXBytebuffer.cpp + development/src/GXChargePerUnitScaling.cpp + development/src/GXChargeTable.cpp + development/src/GXCipher.cpp + development/src/GXCommodity.cpp + development/src/GXCreditChargeConfiguration.cpp + development/src/GXCurrency.cpp + development/src/GXDateTime.cpp + development/src/GXDLMS.cpp + development/src/GXDLMSAccount.cpp + development/src/GXDLMSActionItem.cpp + development/src/GXDLMSActionSchedule.cpp + development/src/GXDLMSActionSet.cpp + development/src/GXDLMSActivityCalendar.cpp + development/src/GXDLMSAssociationLogicalName.cpp + development/src/GXDLMSAssociationShortName.cpp + development/src/GXDLMSAutoAnswer.cpp + development/src/GXDLMSAutoConnect.cpp + development/src/GXDLMSCaptureObject.cpp + development/src/GXDLMSCertificateInfo.cpp + development/src/GXDLMSCharge.cpp + development/src/GXDLMSClient.cpp + development/src/GXDLMSClock.cpp + development/src/GXDLMSCompactData.cpp + development/src/GXDLMSContextType.cpp + development/src/GXDLMSConverter.cpp + development/src/GXDLMSCredit.cpp + development/src/GXDLMSData.cpp + development/src/GXDLMSDayProfile.cpp + development/src/GXDLMSDayProfileAction.cpp + development/src/GXDLMSDemandRegister.cpp + development/src/GXDLMSDisconnectControl.cpp + development/src/GXDLMSEmergencyProfile.cpp + development/src/GXDLMSExtendedRegister.cpp + development/src/GXDLMSGPRSSetup.cpp + development/src/GXDLMSGSMCellInfo.cpp + development/src/GXDLMSGSMDiagnostic.cpp + development/src/GXDLMSHdlcSetup.cpp + development/src/GXDLMSIECOpticalPortSetup.cpp + development/src/GXDLMSImageActivateInfo.cpp + development/src/GXDLMSImageTransfer.cpp + development/src/GXDLMSIp4Setup.cpp + development/src/GXDLMSIp4SetupIpOption.cpp + development/src/GXDLMSLimiter.cpp + development/src/GXDLMSLimits.cpp + development/src/GXDLMSLNCommandHandler.cpp + development/src/GXDLMSLNParameters.cpp + development/src/GXDLMSMacAddressSetup.cpp + development/src/GXDLMSMBusClient.cpp + development/src/GXDLMSMBusMasterPortSetup.cpp + development/src/GXDLMSMBusSlavePortSetup.cpp + development/src/GXDLMSMd5.cpp + development/src/GXDLMSMessageHandler.cpp + development/src/GXDLMSModemConfiguration.cpp + development/src/GXDLMSModemInitialisation.cpp + development/src/GXDLMSMonitoredValue.cpp + development/src/GXDLMSNotify.cpp + development/src/GXDLMSObject.cpp + development/src/GXDLMSObjectCollection.cpp + development/src/GXDLMSObjectDefinition.cpp + development/src/GXDLMSObjectFactory.cpp + development/src/GXDLMSParameterMonitor.cpp + development/src/GXDLMSPppSetup.cpp + development/src/GXDLMSPppSetupIPCPOption.cpp + development/src/GXDLMSPppSetupLcpOption.cpp + development/src/GXDLMSProfileGeneric.cpp + development/src/GXDLMSPushObject.cpp + development/src/GXDLMSPushSetup.cpp + development/src/GXDLMSQualityOfService.cpp + development/src/GXDLMSRegister.cpp + development/src/GXDLMSRegisterActivation.cpp + development/src/GXDLMSRegisterMonitor.cpp + development/src/GXDLMSSapAssignment.cpp + development/src/GXDLMSSchedule.cpp + development/src/GXDLMSScheduleEntry.cpp + development/src/GXDLMSScript.cpp + development/src/GXDLMSScriptAction.cpp + development/src/GXDLMSScriptTable.cpp + development/src/GXDLMSSeasonProfile.cpp + development/src/GXDLMSSecureClient.cpp + development/src/GXDLMSSecureServer.cpp + development/src/GXDLMSSecuritySetup.cpp + development/src/GXDLMSServer.cpp + development/src/GXDLMSSettings.cpp + development/src/GXDLMSSha1.cpp + development/src/GXDLMSSha256.cpp + development/src/GXDLMSSNCommandHandler.cpp + development/src/GXDLMSSNParameters.cpp + development/src/GXDLMSSpecialDay.cpp + development/src/GXDLMSSpecialDaysTable.cpp + development/src/GXDLMSTarget.cpp + development/src/GXDLMSTcpUdpSetup.cpp + development/src/GXDLMSTokenGateway.cpp + development/src/GXDLMSTranslator.cpp + development/src/GXDLMSTranslatorStructure.cpp + development/src/GXDLMSUtilityTables.cpp + development/src/GXDLMSValueEventArg.cpp + development/src/GXDLMSVariant.cpp + development/src/GXDLMSWeekProfile.cpp + development/src/GXHelpers.cpp + development/src/GXReplyData.cpp + development/src/GXSecure.cpp + development/src/GXSerialNumberCounter.cpp + development/src/GXSNInfo.cpp + development/src/GXStandardObisCode.cpp + development/src/GXStandardObisCodeCollection.cpp + development/src/GXTokenGatewayConfiguration.cpp + development/src/GXUnitCharge.cpp + development/VS/GuruxDLMS.sln + development/VS/GuruxDLMS.vcproj + development/VS/GuruxDLMS.vcxproj + development/VS/GuruxDLMS.vcxproj.filters + development/makefile + GuruxDLMSClientExample/include/communication.h + GuruxDLMSClientExample/include/getopt.h + GuruxDLMSClientExample/src/communication.cpp + GuruxDLMSClientExample/src/getopt.c + GuruxDLMSClientExample/src/GuruxDLMSClientExample.cpp + GuruxDLMSClientExample/VS/GuruxDLMClientExample.sln + GuruxDLMSClientExample/VS/GuruxDLMSClientExample.vcxproj + GuruxDLMSClientExample/VS/GuruxDLMSClientExample.vcxproj.filters + GuruxDLMSClientExample/.gitattributes + GuruxDLMSClientExample/.gitignore + GuruxDLMSClientExample/makefile + GuruxDLMSPushExample/include/GXDLMSPushListener.h + GuruxDLMSPushExample/src/GXDLMSPushListener.cpp + GuruxDLMSPushExample/src/main.cpp + GuruxDLMSPushExample/VS/GuruxDLMSPushExample.sln + GuruxDLMSPushExample/VS/GuruxDLMSPushExample.vcxproj + GuruxDLMSPushExample/VS/GuruxDLMSPushExample.vcxproj.filters + GuruxDLMSPushExample/makefile + GuruxDLMSServerExample/include/getopt.h + GuruxDLMSServerExample/include/GXDLMSBase.h + GuruxDLMSServerExample/include/GXDLMSServerLN.h + GuruxDLMSServerExample/include/GXDLMSServerLN_47.h + GuruxDLMSServerExample/include/GXDLMSServerSN.h + GuruxDLMSServerExample/include/GXDLMSServerSN_47.h + GuruxDLMSServerExample/src/getopt.c + GuruxDLMSServerExample/src/GXDLMSBase.cpp + GuruxDLMSServerExample/src/main.cpp + GuruxDLMSServerExample/VS/GuruxDLMSServerExample.sln + GuruxDLMSServerExample/VS/GuruxDLMSServerExample.vcxproj + GuruxDLMSServerExample/VS/GuruxDLMSServerExample.vcxproj.filters + GuruxDLMSServerExample/.gitattributes + GuruxDLMSServerExample/.gitignore + GuruxDLMSServerExample/makefile + mbed/GuruxDLMSClientExample/.mbed + mbed/GuruxDLMSClientExample/communication.cpp + mbed/GuruxDLMSClientExample/communication.h + mbed/GuruxDLMSClientExample/main.cpp + mbed/GuruxDLMSClientExample/mbed-os.lib + mbed/GuruxDLMSClientExample/mbed_settings.py + .gitattributes + .gitignore + CREDITS.md + LICENSE + README.md) diff --git a/cmake-build-debug/CMakeFiles/clion-log.txt b/cmake-build-debug/CMakeFiles/clion-log.txt new file mode 100644 index 00000000..c7ba5e8f --- /dev/null +++ b/cmake-build-debug/CMakeFiles/clion-log.txt @@ -0,0 +1 @@ +Toolchains are not configured Configure diff --git a/development/src/GXBytebuffer.cpp b/development/src/GXBytebuffer.cpp index 25bc9461..aebfb7c3 100644 --- a/development/src/GXBytebuffer.cpp +++ b/development/src/GXBytebuffer.cpp @@ -114,19 +114,22 @@ void CGXByteBuffer::SetPosition(unsigned long value) void CGXByteBuffer::Capacity(unsigned long capacity) { m_Capacity = capacity; + + if (m_Data != NULL) + { + free(m_Data); + m_Data = NULL; + } + if (capacity == 0) { - if (m_Data != NULL) - { - free(m_Data); - m_Data = NULL; - } m_Size = 0; m_Position = 0; } else { m_Data = (unsigned char*)realloc(m_Data, m_Capacity); + if (m_Size > capacity) { m_Size = capacity; From 59e313be79b1d995ae4085ea501f39fc792db0f6 Mon Sep 17 00:00:00 2001 From: minyoung90 Date: Thu, 13 Jun 2019 13:19:31 +0900 Subject: [PATCH 2/4] Delete clion-log.txt --- cmake-build-debug/CMakeFiles/clion-log.txt | 1 - 1 file changed, 1 deletion(-) delete mode 100644 cmake-build-debug/CMakeFiles/clion-log.txt diff --git a/cmake-build-debug/CMakeFiles/clion-log.txt b/cmake-build-debug/CMakeFiles/clion-log.txt deleted file mode 100644 index c7ba5e8f..00000000 --- a/cmake-build-debug/CMakeFiles/clion-log.txt +++ /dev/null @@ -1 +0,0 @@ -Toolchains are not configured Configure From bbdeddc678e20e7cc6eee3399a107195cc290e6f Mon Sep 17 00:00:00 2001 From: minyoung90 Date: Thu, 13 Jun 2019 13:19:41 +0900 Subject: [PATCH 3/4] Delete CMakeLists.txt --- CMakeLists.txt | 304 ------------------------------------------------- 1 file changed, 304 deletions(-) delete mode 100644 CMakeLists.txt diff --git a/CMakeLists.txt b/CMakeLists.txt deleted file mode 100644 index 3b1a90ac..00000000 --- a/CMakeLists.txt +++ /dev/null @@ -1,304 +0,0 @@ -# cmake_minimum_required(VERSION ) -project(Gurux_DLMS_cpp) - -set(CMAKE_CXX_STANDARD 14) - -include_directories(development/include) -include_directories(GuruxDLMSClientExample/include) -include_directories(GuruxDLMSPushExample/include) -include_directories(GuruxDLMSServerExample/include) -include_directories(mbed/GuruxDLMSClientExample) - -add_executable(Gurux_DLMS_cpp - development/include/chipperingenums.h - development/include/enums.h - development/include/errorcodes.h - development/include/GXAdjacentCell.h - development/include/GXAPDU.h - development/include/GXApplicationContextName.h - development/include/GXAttributeCollection.h - development/include/GXAuthentication.h - development/include/GXAuthenticationMechanismName.h - development/include/GXBytebuffer.h - development/include/GXChargePerUnitScaling.h - development/include/GXChargeTable.h - development/include/GXCipher.h - development/include/GXCommodity.h - development/include/GXCreditChargeConfiguration.h - development/include/GXCurrency.h - development/include/GXDataInfo.h - development/include/GXDate.h - development/include/GXDateTime.h - development/include/GXDLMS.h - development/include/GXDLMSAccount.h - development/include/GXDLMSActionItem.h - development/include/GXDLMSActionSchedule.h - development/include/GXDLMSActionSet.h - development/include/GXDLMSActivityCalendar.h - development/include/GXDLMSAssociationLogicalName.h - development/include/GXDLMSAssociationShortName.h - development/include/GXDLMSAttribute.h - development/include/GXDLMSAutoAnswer.h - development/include/GXDLMSAutoConnect.h - development/include/GXDLMSCaptureObject.h - development/include/GXDLMSCertificateInfo.h - development/include/GXDLMSCharge.h - development/include/GXDLMSClient.h - development/include/GXDLMSClock.h - development/include/GXDLMSCompactData.h - development/include/GXDLMSConnectionEventArgs.h - development/include/GXDLMSContextType.h - development/include/GXDLMSConverter.h - development/include/GXDLMSCredit.h - development/include/GXDLMSData.h - development/include/GXDLMSDayProfile.h - development/include/GXDLMSDayProfileAction.h - development/include/GXDLMSDemandRegister.h - development/include/GXDLMSDisconnectControl.h - development/include/GXDLMSEmergencyProfile.h - development/include/GXDLMSExtendedRegister.h - development/include/GXDLMSGPRSSetup.h - development/include/GXDLMSGSMCellInfo.h - development/include/GXDLMSGSMDiagnostic.h - development/include/GXDLMSHdlcSetup.h - development/include/GXDLMSIECOpticalPortSetup.h - development/include/GXDLMSImageActivateInfo.h - development/include/GXDLMSImageTransfer.h - development/include/GXDLMSIp4Setup.h - development/include/GXDLMSIp4SetupIpOption.h - development/include/GXDLMSLimiter.h - development/include/GXDLMSLimits.h - development/include/GXDLMSLNCommandHandler.h - development/include/GXDLMSLNParameters.h - development/include/GXDLMSLongTransaction.h - development/include/GXDLMSMacAddressSetup.h - development/include/GXDLMSMBusClient.h - development/include/GXDLMSMBusMasterPortSetup.h - development/include/GXDLMSMBusSlavePortSetup.h - development/include/GXDLMSMd5.h - development/include/GXDLMSMessageHandler.h - development/include/GXDLMSModemConfiguration.h - development/include/GXDLMSModemInitialisation.h - development/include/GXDLMSMonitoredValue.h - development/include/GXDLMSNotify.h - development/include/GXDLMSObject.h - development/include/GXDLMSObjectCollection.h - development/include/GXDLMSObjectDefinition.h - development/include/GXDLMSObjectFactory.h - development/include/GXDLMSParameterMonitor.h - development/include/GXDLMSPppSetup.h - development/include/GXDLMSPppSetupIPCPOption.h - development/include/GXDLMSPppSetupLcpOption.h - development/include/GXDLMSProfileGeneric.h - development/include/GXDLMSPushObject.h - development/include/GXDLMSPushSetup.h - development/include/GXDLMSQualityOfService.h - development/include/GXDLMSRegister.h - development/include/GXDLMSRegisterActivation.h - development/include/GXDLMSRegisterMonitor.h - development/include/GXDLMSSapAssignment.h - development/include/GXDLMSSchedule.h - development/include/GXDLMSScheduleEntry.h - development/include/GXDLMSScript.h - development/include/GXDLMSScriptAction.h - development/include/GXDLMSScriptTable.h - development/include/GXDLMSSeasonProfile.h - development/include/GXDLMSSecureClient.h - development/include/GXDLMSSecureServer.h - development/include/GXDLMSSecuritySetup.h - development/include/GXDLMSServer.h - development/include/GXDLMSSettings.h - development/include/GXDLMSSha1.h - development/include/GXDLMSSha256.h - development/include/GXDLMSSNCommandHandler.h - development/include/GXDLMSSNParameters.h - development/include/GXDLMSSpecialDay.h - development/include/GXDLMSSpecialDaysTable.h - development/include/GXDLMSTarget.h - development/include/GXDLMSTcpUdpSetup.h - development/include/GXDLMSTokenGateway.h - development/include/GXDLMSTranslator.h - development/include/GXDLMSTranslatorStructure.h - development/include/GXDLMSUtilityTables.h - development/include/GXDLMSValueEventArg.h - development/include/GXDLMSValueEventCollection.h - development/include/GXDLMSVariant.h - development/include/GXDLMSWeekProfile.h - development/include/GXHelpers.h - development/include/GXReplyData.h - development/include/GXSecure.h - development/include/GXSerialNumberCounter.h - development/include/GXServerReply.h - development/include/GXSNInfo.h - development/include/GXStandardObisCode.h - development/include/GXStandardObisCodeCollection.h - development/include/GXTime.h - development/include/GXTokenGatewayConfiguration.h - development/include/GXUnitCharge.h - development/include/IGXDLMSBase.h - development/include/OBiscodes.h - development/include/TranslatorGeneralTags.h - development/include/TranslatorSimpleTags.h - development/include/TranslatorStandardTags.h - development/include/TranslatorTags.h - development/src/GXAdjacentCell.cpp - development/src/GXAPDU.cpp - development/src/GXApplicationContextName.cpp - development/src/GXAuthenticationMechanismName.cpp - development/src/GXBytebuffer.cpp - development/src/GXChargePerUnitScaling.cpp - development/src/GXChargeTable.cpp - development/src/GXCipher.cpp - development/src/GXCommodity.cpp - development/src/GXCreditChargeConfiguration.cpp - development/src/GXCurrency.cpp - development/src/GXDateTime.cpp - development/src/GXDLMS.cpp - development/src/GXDLMSAccount.cpp - development/src/GXDLMSActionItem.cpp - development/src/GXDLMSActionSchedule.cpp - development/src/GXDLMSActionSet.cpp - development/src/GXDLMSActivityCalendar.cpp - development/src/GXDLMSAssociationLogicalName.cpp - development/src/GXDLMSAssociationShortName.cpp - development/src/GXDLMSAutoAnswer.cpp - development/src/GXDLMSAutoConnect.cpp - development/src/GXDLMSCaptureObject.cpp - development/src/GXDLMSCertificateInfo.cpp - development/src/GXDLMSCharge.cpp - development/src/GXDLMSClient.cpp - development/src/GXDLMSClock.cpp - development/src/GXDLMSCompactData.cpp - development/src/GXDLMSContextType.cpp - development/src/GXDLMSConverter.cpp - development/src/GXDLMSCredit.cpp - development/src/GXDLMSData.cpp - development/src/GXDLMSDayProfile.cpp - development/src/GXDLMSDayProfileAction.cpp - development/src/GXDLMSDemandRegister.cpp - development/src/GXDLMSDisconnectControl.cpp - development/src/GXDLMSEmergencyProfile.cpp - development/src/GXDLMSExtendedRegister.cpp - development/src/GXDLMSGPRSSetup.cpp - development/src/GXDLMSGSMCellInfo.cpp - development/src/GXDLMSGSMDiagnostic.cpp - development/src/GXDLMSHdlcSetup.cpp - development/src/GXDLMSIECOpticalPortSetup.cpp - development/src/GXDLMSImageActivateInfo.cpp - development/src/GXDLMSImageTransfer.cpp - development/src/GXDLMSIp4Setup.cpp - development/src/GXDLMSIp4SetupIpOption.cpp - development/src/GXDLMSLimiter.cpp - development/src/GXDLMSLimits.cpp - development/src/GXDLMSLNCommandHandler.cpp - development/src/GXDLMSLNParameters.cpp - development/src/GXDLMSMacAddressSetup.cpp - development/src/GXDLMSMBusClient.cpp - development/src/GXDLMSMBusMasterPortSetup.cpp - development/src/GXDLMSMBusSlavePortSetup.cpp - development/src/GXDLMSMd5.cpp - development/src/GXDLMSMessageHandler.cpp - development/src/GXDLMSModemConfiguration.cpp - development/src/GXDLMSModemInitialisation.cpp - development/src/GXDLMSMonitoredValue.cpp - development/src/GXDLMSNotify.cpp - development/src/GXDLMSObject.cpp - development/src/GXDLMSObjectCollection.cpp - development/src/GXDLMSObjectDefinition.cpp - development/src/GXDLMSObjectFactory.cpp - development/src/GXDLMSParameterMonitor.cpp - development/src/GXDLMSPppSetup.cpp - development/src/GXDLMSPppSetupIPCPOption.cpp - development/src/GXDLMSPppSetupLcpOption.cpp - development/src/GXDLMSProfileGeneric.cpp - development/src/GXDLMSPushObject.cpp - development/src/GXDLMSPushSetup.cpp - development/src/GXDLMSQualityOfService.cpp - development/src/GXDLMSRegister.cpp - development/src/GXDLMSRegisterActivation.cpp - development/src/GXDLMSRegisterMonitor.cpp - development/src/GXDLMSSapAssignment.cpp - development/src/GXDLMSSchedule.cpp - development/src/GXDLMSScheduleEntry.cpp - development/src/GXDLMSScript.cpp - development/src/GXDLMSScriptAction.cpp - development/src/GXDLMSScriptTable.cpp - development/src/GXDLMSSeasonProfile.cpp - development/src/GXDLMSSecureClient.cpp - development/src/GXDLMSSecureServer.cpp - development/src/GXDLMSSecuritySetup.cpp - development/src/GXDLMSServer.cpp - development/src/GXDLMSSettings.cpp - development/src/GXDLMSSha1.cpp - development/src/GXDLMSSha256.cpp - development/src/GXDLMSSNCommandHandler.cpp - development/src/GXDLMSSNParameters.cpp - development/src/GXDLMSSpecialDay.cpp - development/src/GXDLMSSpecialDaysTable.cpp - development/src/GXDLMSTarget.cpp - development/src/GXDLMSTcpUdpSetup.cpp - development/src/GXDLMSTokenGateway.cpp - development/src/GXDLMSTranslator.cpp - development/src/GXDLMSTranslatorStructure.cpp - development/src/GXDLMSUtilityTables.cpp - development/src/GXDLMSValueEventArg.cpp - development/src/GXDLMSVariant.cpp - development/src/GXDLMSWeekProfile.cpp - development/src/GXHelpers.cpp - development/src/GXReplyData.cpp - development/src/GXSecure.cpp - development/src/GXSerialNumberCounter.cpp - development/src/GXSNInfo.cpp - development/src/GXStandardObisCode.cpp - development/src/GXStandardObisCodeCollection.cpp - development/src/GXTokenGatewayConfiguration.cpp - development/src/GXUnitCharge.cpp - development/VS/GuruxDLMS.sln - development/VS/GuruxDLMS.vcproj - development/VS/GuruxDLMS.vcxproj - development/VS/GuruxDLMS.vcxproj.filters - development/makefile - GuruxDLMSClientExample/include/communication.h - GuruxDLMSClientExample/include/getopt.h - GuruxDLMSClientExample/src/communication.cpp - GuruxDLMSClientExample/src/getopt.c - GuruxDLMSClientExample/src/GuruxDLMSClientExample.cpp - GuruxDLMSClientExample/VS/GuruxDLMClientExample.sln - GuruxDLMSClientExample/VS/GuruxDLMSClientExample.vcxproj - GuruxDLMSClientExample/VS/GuruxDLMSClientExample.vcxproj.filters - GuruxDLMSClientExample/.gitattributes - GuruxDLMSClientExample/.gitignore - GuruxDLMSClientExample/makefile - GuruxDLMSPushExample/include/GXDLMSPushListener.h - GuruxDLMSPushExample/src/GXDLMSPushListener.cpp - GuruxDLMSPushExample/src/main.cpp - GuruxDLMSPushExample/VS/GuruxDLMSPushExample.sln - GuruxDLMSPushExample/VS/GuruxDLMSPushExample.vcxproj - GuruxDLMSPushExample/VS/GuruxDLMSPushExample.vcxproj.filters - GuruxDLMSPushExample/makefile - GuruxDLMSServerExample/include/getopt.h - GuruxDLMSServerExample/include/GXDLMSBase.h - GuruxDLMSServerExample/include/GXDLMSServerLN.h - GuruxDLMSServerExample/include/GXDLMSServerLN_47.h - GuruxDLMSServerExample/include/GXDLMSServerSN.h - GuruxDLMSServerExample/include/GXDLMSServerSN_47.h - GuruxDLMSServerExample/src/getopt.c - GuruxDLMSServerExample/src/GXDLMSBase.cpp - GuruxDLMSServerExample/src/main.cpp - GuruxDLMSServerExample/VS/GuruxDLMSServerExample.sln - GuruxDLMSServerExample/VS/GuruxDLMSServerExample.vcxproj - GuruxDLMSServerExample/VS/GuruxDLMSServerExample.vcxproj.filters - GuruxDLMSServerExample/.gitattributes - GuruxDLMSServerExample/.gitignore - GuruxDLMSServerExample/makefile - mbed/GuruxDLMSClientExample/.mbed - mbed/GuruxDLMSClientExample/communication.cpp - mbed/GuruxDLMSClientExample/communication.h - mbed/GuruxDLMSClientExample/main.cpp - mbed/GuruxDLMSClientExample/mbed-os.lib - mbed/GuruxDLMSClientExample/mbed_settings.py - .gitattributes - .gitignore - CREDITS.md - LICENSE - README.md) From 5c19ba477f1fed28b6fcd312881ceddb287f7c72 Mon Sep 17 00:00:00 2001 From: Min-Young Date: Thu, 13 Jun 2019 14:30:26 +0900 Subject: [PATCH 4/4] Memory leak fixed --- development/src/GXBytebuffer.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/development/src/GXBytebuffer.cpp b/development/src/GXBytebuffer.cpp index aebfb7c3..2b558f95 100644 --- a/development/src/GXBytebuffer.cpp +++ b/development/src/GXBytebuffer.cpp @@ -309,6 +309,11 @@ void CGXByteBuffer::Set(const void* pSource, unsigned long count) { m_Capacity += count + VECTOR_CAPACITY; } + + if (m_Data != NULL) + { + free(m_Data); + } m_Data = (unsigned char*)realloc(m_Data, m_Capacity); } memcpy(m_Data + m_Size, pSource, count);