Hi, Yes , we can make 'found' a static array.It will do the same purpose ,also we dont need to add further error checking code for malloc and then free(). Here is the patch:
From: Manjeet Pawar <[email protected]> Date: Tue, 9 Jun 2015 17:28:06 +0530 Subject: [PATCH] utils/sctp/testlib/sctputil.c: make 'found' a static array instead of dynamic memory to avoid memory leak This patch make 'found' a static array to avoid memory leaks. Signed-off-by: Cyril Hrubis <[email protected]> Signed-off-by: Manjeet Pawar <[email protected]> --- utils/sctp/testlib/sctputil.c | 3 +-- 1 files changed, 1 insertions(+), 2 deletions(-) diff --git a/utils/sctp/testlib/sctputil.c b/utils/sctp/testlib/sctputil.c index c670af6..e7333e5 100644 --- a/utils/sctp/testlib/sctputil.c +++ b/utils/sctp/testlib/sctputil.c @@ -370,8 +370,7 @@ int test_peer_addr(int sk, sctp_assoc_t asoc, sockaddr_storage_t *peers, int cou struct sockaddr *sa_addr; socklen_t addrs_size = 0; void *addrbuf; - char *found = (char *) malloc(count); - memset(found, 0, count); + char found[count]; error = sctp_getpaddrs(sk, asoc, &addrs); if (-1 == error) { -- 1.7.1 ------- Original Message ------- Sender : Cyril Hrubis<[email protected]> Date : Jun 09, 2015 01:48 (GMT+09:00) Title : Re: [LTP] [PATCH]: Fix memory leak Hi! There is also missing check for the return from malloc(). And given that we do not return the pointer to the array and that the cound is at most 6, what about changing the malloc() to array on stack? I.e. - char *found = (char *) malloc(count); - memset(found, 0, count); + char found[count]; -- Cyril Hrubis [email protected] ------------------------------------------------------------------------------ _______________________________________________ Ltp-list mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/ltp-list
