From ed306103337f6f8d5cdfa27872eb7662e85ac99f Mon Sep 17 00:00:00 2001 From: Simon Brandner Date: Wed, 28 Nov 2012 15:41:42 +0100 Subject: Parasoft: added 2 free s_segmented_data allocations in error case - one detected by Parasoft, the other seems similar. Signed-off-by: Alexander Wenzel --- src/lib/dlt_user.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) (limited to 'src/lib/dlt_user.c') diff --git a/src/lib/dlt_user.c b/src/lib/dlt_user.c index 199b943..64ba5c3 100644 --- a/src/lib/dlt_user.c +++ b/src/lib/dlt_user.c @@ -2233,17 +2233,21 @@ int dlt_user_trace_network_segmented(DltContext *handle, DltNetworkTraceType nw_ thread_data->payload_len); if(err == DLT_RETURN_BUFFER_FULL || err == DLT_RETURN_ERROR) { - dlt_log(LOG_ERR,"NWTSegmented: Could not send start segment. Aborting.\n"); - free(thread_data->header); - free(thread_data->payload); - free(thread_data); + dlt_log(LOG_ERR,"NWTSegmented: Could not send start segment. Aborting.\n"); + free(thread_data->header); + free(thread_data->payload); + free(thread_data); return -1; } /* Open queue if it is not open */ if(dlt_init_message_queue() < 0) { - dlt_log(LOG_ERR, "NWTSegmented: Could not open queue.\n"); + dlt_log(LOG_ERR, "NWTSegmented: Could not open queue.\n"); + free(thread_data->header); + free(thread_data->payload); + free(thread_data); + return -1; } @@ -2689,6 +2693,7 @@ int dlt_user_queue_resend(void) if(dlt_init_message_queue() < 0) { dlt_log(LOG_ERR, "NWTSegmented: Could not open queue.\n"); + free(resend_data); return -1; } -- cgit v1.2.1