Hi!
On 06/19/2015 02:25 PM, Manjeet Pawar wrote:
> From: Manjeet Pawar <manjee...@samsung.com>
> Date: Fri, 19 Jun 2015 16:45:54 +0530
> Subject: [PATCH] testcases/open_posix_testsuite/functional/semaphores: Fix 
> memory leak by freeing buf
>
> This patch fix memory leak by freeing memory leak before function return
>
> Signed-off-by: Manjeet Pawar <manjee...@samsung.com>
> Signed-off-by: Akhilesh Kumar <akhiles...@samsung.com>
> ---
>   .../functional/semaphores/sem_conpro.c             |    5 +++++
>   1 file changed, 5 insertions(+)
>
> diff --git 
> a/testcases/open_posix_testsuite/functional/semaphores/sem_conpro.c 
> b/testcases/open_posix_testsuite/functional/semaphores/sem_conpro.c
> index f5f1abf..f3a4cfb 100644
> --- a/testcases/open_posix_testsuite/functional/semaphores/sem_conpro.c
> +++ b/testcases/open_posix_testsuite/functional/semaphores/sem_conpro.c
> @@ -106,19 +106,23 @@ int main(int argc, char *argv[])
>   
>   #ifndef  _POSIX_SEMAPHORES
>       printf("_POSIX_SEMAPHORES is not defined \n");
> +     free(buf);
>       return PTS_UNRESOLVED;
>   #endif
>       if (-1 == sem_init(&(buf->occupied), shared, occupied_value)) {
>               perror("sem_init didn't return success \n");
>               printf("hello \n");
> +             free(buf);
>               return PTS_UNRESOLVED;
>       }
>       if (-1 == sem_init(&buf->empty, shared, empty_value)) {
>               perror("sem_init didn't return success \n");
> +             free(buf);
>               return PTS_UNRESOLVED;
>       }
>       if (-1 == sem_init(&buf->lock, shared, lock_value)) {
>               perror("sem_init didn't return success \n");
> +             free(buf);
>               return PTS_UNRESOLVED;
>       }
>       in = out = 0;
> @@ -129,5 +133,6 @@ int main(int argc, char *argv[])
>       pthread_join(pro, NULL);
>       sem_destroy(&buf->occupied);
>       sem_destroy(&buf->empty);
> +     free(buf);
>       return PTS_PASS;
>   }

The program terminating after free() so it will be freed in any case, I 
don't see memory leak here.

I think the better change would be to check the return value from 
malloc() (e.g. using SAFE_MALLOC) or allocate 'buf' on the stack.

Thanks,
Alexey


------------------------------------------------------------------------------
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list

Reply via email to