summaryrefslogtreecommitdiff
path: root/lcmodule/source/cnh1605204_ldr_transport_layer/source/command_protocol.c
diff options
context:
space:
mode:
Diffstat (limited to 'lcmodule/source/cnh1605204_ldr_transport_layer/source/command_protocol.c')
-rw-r--r--lcmodule/source/cnh1605204_ldr_transport_layer/source/command_protocol.c25
1 files changed, 9 insertions, 16 deletions
diff --git a/lcmodule/source/cnh1605204_ldr_transport_layer/source/command_protocol.c b/lcmodule/source/cnh1605204_ldr_transport_layer/source/command_protocol.c
index 311ca2b..6041965 100644
--- a/lcmodule/source/cnh1605204_ldr_transport_layer/source/command_protocol.c
+++ b/lcmodule/source/cnh1605204_ldr_transport_layer/source/command_protocol.c
@@ -259,25 +259,18 @@ static ErrorCode_e DispatchCommand(Communication_t *Communication_p, PacketMeta_
CmdData.ApplicationNr = ExtendedHeader.CommandGroup;
CmdData.SessionNr = ExtendedHeader.SessionState >> 2;
CmdData.Payload.Size = Packet_p->Header.PayloadLength;
- CmdData.Payload.Data_p = NULL;
-
- if (0 != CmdData.Payload.Size) {
- CmdData.Payload.Data_p = (uint8 *)malloc(Packet_p->Header.PayloadLength);
-
- if (NULL == CmdData.Payload.Data_p) {
- return E_ALLOCATE_FAILED;
- }
-
- memcpy(CmdData.Payload.Data_p, Packet_p->Payload_p, Packet_p->Header.PayloadLength);
- }
-
- ReturnValue = R15_Network_PacketRelease(Communication_p, Packet_p);
+ CmdData.Payload.Data_p = Packet_p->Payload_p;
ReturnValue = Communication_p->Do_CEH_Call_Fn(OBJECT_CEH_CALL(Communication_p), &CmdData);
- if (NULL != CmdData.Payload.Data_p) {
- free(CmdData.Payload.Data_p);
- CmdData.Payload.Data_p = NULL;
+ if (E_SUCCESS == ReturnValue) {
+ ReturnValue = R15_Network_PacketRelease(Communication_p, Packet_p);
+ } else {
+ ErrorCode_e PacketReleaseRet = R15_Network_PacketRelease(Communication_p, Packet_p);
+
+ if (E_SUCCESS != PacketReleaseRet) {
+ A_(printf("command_protocol.c (%d): Failed to release Network packet! Error: %d\n", __LINE__, PacketReleaseRet);)
+ }
}
return ReturnValue;