diff options
author | Lassi Marttala <lassi.lm.marttala@partner.bmw.com> | 2012-02-21 13:02:16 +0100 |
---|---|---|
committer | Christian Muck <christian.muck@bmw.de> | 2012-04-04 14:30:43 +0200 |
commit | 5909561a7ac82ba25694321f3ffa37c83f7e085f (patch) | |
tree | ba7c99792490570dc3a367600a4ad7fba79e6876 /src/lib/dlt_client.c | |
parent | aea3ecd7cbbdff54dc061357e96cf606f9a52dea (diff) | |
download | DLT-daemon-5909561a7ac82ba25694321f3ffa37c83f7e085f.tar.gz |
GENDLT-15, Safe re-allocations for databuffer.
Signed-off-by: Christian Muck <christian.muck@bmw.de>
Diffstat (limited to 'src/lib/dlt_client.c')
-rwxr-xr-x | src/lib/dlt_client.c | 8 |
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); |