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

Reply via email to