summaryrefslogtreecommitdiff
path: root/src/lib/dlt_client.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/dlt_client.c')
-rwxr-xr-xsrc/lib/dlt_client.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/lib/dlt_client.c b/src/lib/dlt_client.c
index 39b5b07..b3962a7 100755
--- a/src/lib/dlt_client.c
+++ b/src/lib/dlt_client.c
@@ -327,11 +327,15 @@ int dlt_client_send_inject_msg(DltClient *client, char *apid, char *ctid, uint32
/* prepare payload of data */
msg.datasize = sizeof(uint32_t) + sizeof(uint32_t) + size;
- if (msg.databuffer)
+ if (msg.databuffer && (msg.databuffersize < msg.datasize))
{
free(msg.databuffer);
+ msg.databuffer=0;
+ }
+ if (msg.databuffer == 0){
+ msg.databuffer = (uint8_t *) malloc(msg.datasize);
+ msg.databuffersize = msg.datasize;
}
- msg.databuffer = (uint8_t *) malloc(msg.datasize);
memcpy(msg.databuffer , &serviceID,sizeof(serviceID));
offset+=sizeof(uint32_t);