From: Alex Jia <ajia@redhat.com>
To: Peter Maydell <peter.maydell@linaro.org>
Cc: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH] linux-user: fix memory leak in failure path
Date: Wed, 28 Sep 2011 16:27:36 +0800 [thread overview]
Message-ID: <4E82DA78.6030001@redhat.com> (raw)
In-Reply-To: <CAFEAcA8wxisK3sR5E2nS4zndvuEwmibk6czjF0CWjfJB-9fU1A@mail.gmail.com>
On 09/28/2011 03:55 PM, Peter Maydell wrote:
> On 28 September 2011 07:57,<ajia@redhat.com> wrote:
>> From: Alex Jia<ajia@redhat.com>
>>
>> Haven't released memory of 'array' and 'host_mb' in failure paths.
>>
>> Signed-off-by: Alex Jia<ajia@redhat.com>
>> ---
>> linux-user/syscall.c | 6 ++++--
>> 1 files changed, 4 insertions(+), 2 deletions(-)
>>
>> diff --git a/linux-user/syscall.c b/linux-user/syscall.c
>> index 7735008..922c2a0 100644
>> --- a/linux-user/syscall.c
>> +++ b/linux-user/syscall.c
>> @@ -2523,8 +2523,10 @@ static inline abi_long do_semctl(int semid, int semnum, int cmd,
>> case GETALL:
>> case SETALL:
>> err = target_to_host_semarray(semid,&array, target_su.array);
>> - if (err)
>> + if (err) {
>> + free(array);
>> return err;
>> + }
>> arg.array = array;
>> ret = get_errno(semctl(semid, semnum, cmd, arg));
>> err = host_to_target_semarray(semid, target_su.array,&array);
> This is the wrong place to try to fix this. If target_to_host_semarray
> fails it should free() the buffer it malloc()ed itself, not rely on
> its caller to do the cleanup.
>
Yeah, caller shouldn't do this.
>> @@ -2779,9 +2781,9 @@ static inline abi_long do_msgrcv(int msqid, abi_long msgp,
>> }
>>
>> target_mb->mtype = tswapl(host_mb->mtype);
>> - free(host_mb);
>>
>> end:
>> + free(host_mb);
>> if (target_mb)
>> unlock_user_struct(target_mb, msgp, 1);
>> return ret;
> This change is OK.
>
> Also I note that target_to_host_semarray is doing a plain malloc()
> and not checking the return value. You should fix that while you're
> doing fixes in this area.
Yeah, for return value check of malloc(), it seems many places haven't
do it.
Thanks,
Alex
> -- PMM
next prev parent reply other threads:[~2011-09-28 8:27 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-09-28 6:57 [Qemu-devel] [PATCH] fix memory leak in aio_write_f ajia
2011-09-28 6:57 ` [Qemu-devel] [PATCH] linux-user: fix memory leak in failure path ajia
2011-09-28 7:55 ` Peter Maydell
2011-09-28 8:27 ` Alex Jia [this message]
2011-10-17 9:57 ` [Qemu-devel] [PATCH] fix memory leak in aio_write_f Kevin Wolf
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4E82DA78.6030001@redhat.com \
--to=ajia@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.