diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 266c2799..e8f5319a 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -43,6 +43,8 @@ set (lib_common_SRCS ./mms/iso_mms/server/mms_domain.c ./mms/iso_mms/server/mms_device.c ./mms/iso_mms/server/mms_information_report.c +./mms/iso_mms/server/mms_journal.c +./mms/iso_mms/server/mms_journal_service.c ./mms/iso_mms/server/mms_server_connection.c ./mms/iso_mms/server/mms_write_service.c ./mms/iso_mms/server/mms_get_var_access_service.c diff --git a/src/hal/ethernet/win32/ethernet_win32.c b/src/hal/ethernet/win32/ethernet_win32.c index 2770df81..68911eeb 100644 --- a/src/hal/ethernet/win32/ethernet_win32.c +++ b/src/hal/ethernet/win32/ethernet_win32.c @@ -233,7 +233,7 @@ Ethernet_getInterfaceMACAddress(const char* interfaceId, uint8_t* addr) long interfaceIndex = strtol(interfaceId, &endPtr, 10); - if (endPtr != NULL) { + if ((*interfaceId != '\0') && (*endPtr != '\0')) { printf("Ethernet_getInterfaceMACAddress: invalid interface number %s\n", interfaceId); return; } diff --git a/src/mms/iso_mms/server/mms_journal_service.c b/src/mms/iso_mms/server/mms_journal_service.c index e10e7e6d..6e8135df 100644 --- a/src/mms/iso_mms/server/mms_journal_service.c +++ b/src/mms/iso_mms/server/mms_journal_service.c @@ -32,7 +32,7 @@ parseStringWithMaxLength(char* filename, int maxLength, uint8_t* buffer, int* bu uint8_t tag = buffer[(*bufPos)++]; int length; - if (tag != 0x19) { + if (tag != 0x19) { /* TODO 0x1a */ mmsServer_writeMmsRejectPdu(&invokeId, MMS_ERROR_REJECT_INVALID_PDU, response); return false; } diff --git a/src/mms/iso_mms/server/mms_server_connection.c b/src/mms/iso_mms/server/mms_server_connection.c index 377d3e71..10b5790c 100644 --- a/src/mms/iso_mms/server/mms_server_connection.c +++ b/src/mms/iso_mms/server/mms_server_connection.c @@ -47,6 +47,8 @@ mmsServer_writeMmsRejectPdu(uint32_t* invokeId, int reason, ByteBuffer* response asn_long2INTEGER(mmsPdu->choice.rejectPDU.originalInvokeID, *invokeId); } + printf("invokeId %p originalInvokeID: %p\n", invokeId, mmsPdu->choice.rejectPDU.originalInvokeID); + if (reason == MMS_ERROR_REJECT_UNRECOGNIZED_SERVICE) { mmsPdu->choice.rejectPDU.rejectReason.present = RejectPDU__rejectReason_PR_confirmedRequestPDU; mmsPdu->choice.rejectPDU.rejectReason.choice.confirmedResponsePDU = @@ -75,6 +77,12 @@ mmsServer_writeMmsRejectPdu(uint32_t* invokeId, int reason, ByteBuffer* response der_encode(&asn_DEF_MmsPdu, mmsPdu, mmsServer_write_out, (void*) response); + if (mmsPdu->choice.rejectPDU.originalInvokeID != NULL) { + GLOBAL_FREEMEM(mmsPdu->choice.rejectPDU.originalInvokeID); + mmsPdu->choice.rejectPDU.originalInvokeID = NULL; + } + + asn_DEF_MmsPdu.free_struct(&asn_DEF_MmsPdu, mmsPdu, 0); }