qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH for-1.4 04/12] qmp: Plug memory leaks in memchar


From: Markus Armbruster
Subject: Re: [Qemu-devel] [PATCH for-1.4 04/12] qmp: Plug memory leaks in memchar-write, memchar-read
Date: Wed, 06 Feb 2013 17:11:54 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.1 (gnu/linux)

Luiz Capitulino <address@hidden> writes:

> On Tue,  5 Feb 2013 17:22:07 +0100
> Markus Armbruster <address@hidden> wrote:
>
>> 
>> Signed-off-by: Markus Armbruster <address@hidden>
>> ---
>>  qemu-char.c | 5 +++++
>>  1 file changed, 5 insertions(+)
>> 
>> diff --git a/qemu-char.c b/qemu-char.c
>> index 892d5bb..9bf53e0 100644
>> --- a/qemu-char.c
>> +++ b/qemu-char.c
>> @@ -2782,6 +2782,10 @@ void qmp_memchar_write(const char *device, const char 
>> *data,
>>  
>>      ret = cirmem_chr_write(chr, write_data, write_count);
>>  
>> +    if (write_data != (uint8_t *)data) {
>
> Minor, but wouldn't it be clearer to check against has_format and format?

I actually like it this way, because it makes it blatantly obvious that
write_data is either freed or owned by the caller.

>> +        g_free((void *)write_data);
>> +    }
>> +
>>      if (ret < 0) {
>>          error_setg(errp, "Failed to write to device %s", device);
>>          return;
>> @@ -2825,6 +2829,7 @@ char *qmp_memchar_read(const char *device, int64_t 
>> size,
>>  
>>      if (has_format && (format == DATA_FORMAT_BASE64)) {
>>          data = g_base64_encode(read_data, count);
>> +        g_free(read_data);
>>      } else {
>>          data = (char *)read_data;
>>      }



reply via email to

[Prev in Thread] Current Thread [Next in Thread]