From 1c8dbfc884cbf63c2cb9ceb56000409f3d3bd0e8 Mon Sep 17 00:00:00 2001 From: Sooyoung Ha Date: Sat, 12 Jan 2013 18:18:36 +0900 Subject: [PATCH] [Title] fix the memory and socket leak risk [Desc.] modify vmodem/transport/transport_onedram.c --- packaging/vmodemd-emul.spec | 2 +- vmodem/transport/transport_onedram.c | 10 ++++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/packaging/vmodemd-emul.spec b/packaging/vmodemd-emul.spec index 619fa35..8bc3890 100644 --- a/packaging/vmodemd-emul.spec +++ b/packaging/vmodemd-emul.spec @@ -1,6 +1,6 @@ #git:slp/pkgs/v/vmodem-daemon-emulator Name: vmodemd-emul -Version: 0.2.28 +Version: 0.2.29 Release: 1 Summary: Modem Emulator Group: System/ModemEmulator diff --git a/vmodem/transport/transport_onedram.c b/vmodem/transport/transport_onedram.c index bedc094..a1345df 100644 --- a/vmodem/transport/transport_onedram.c +++ b/vmodem/transport/transport_onedram.c @@ -239,6 +239,8 @@ int UART_PSI_load (void) /* Read PSI from AP */ data_buffer = (unsigned char *)malloc(data_len); + if(!data_buffer) + goto error; bzero((char *)data_buffer, data_len); nCRC = 0; @@ -281,12 +283,16 @@ int UART_PSI_load (void) } /* Finish the downloading of PSI*/ - close(AT_socket); + close(AT_socket); + if(data_buffer) + free(data_buffer); return 1; error: - if(AT_socket > 0) + if(AT_socket >= 0) close(AT_socket); + if(data_buffer) + free(data_buffer); return 0; } -- 2.7.4