From be85180ee1ad94e67693b9ef23b2a75583919007 Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Wed, 13 Nov 2024 23:21:37 +0100 Subject: [PATCH] record: Fix rtems_record_server() clean up Fix CID 1634787. Fix #5150. --- cpukit/libtrace/record/record-server.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/cpukit/libtrace/record/record-server.c b/cpukit/libtrace/record/record-server.c index 378826e20e..08217e7e58 100644 --- a/cpukit/libtrace/record/record-server.c +++ b/cpukit/libtrace/record/record-server.c @@ -193,7 +193,6 @@ void rtems_record_server( uint16_t port, rtems_interval period ) size_t count; rtems_record_item *items; - sd = -1; self = rtems_task_self(); count = rtems_record_get_item_count_for_fetch(); @@ -204,12 +203,12 @@ void rtems_record_server( uint16_t port, rtems_interval period ) sc = rtems_timer_create( rtems_build_name( 'R', 'C', 'R', 'D' ), &timer ); if ( sc != RTEMS_SUCCESSFUL ) { - goto error; + goto timer_error; } sd = socket( PF_INET, SOCK_STREAM, 0 ); if (sd < 0) { - goto error; + goto socket_error; } memset( &addr, 0, sizeof( addr ) ); @@ -247,9 +246,15 @@ void rtems_record_server( uint16_t port, rtems_interval period ) error: - free( items ); (void) close( sd ); + +socket_error: + (void) rtems_timer_delete( timer ); + +timer_error: + + free( items ); } typedef struct {