qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Alex Chen <alex.chen@huawei.com>
To: "Philippe Mathieu-Daudé" <philmd@redhat.com>
Cc: "qemu-trivial@nongnu.org" <qemu-trivial@nongnu.org>,
	"Chenqun \(kuhn\)" <kuhn.chenqun@huawei.com>,
	"qemu-devel@nongnu.org" <qemu-devel@nongnu.org>,
	Markus Armbruster <armbru@redhat.com>,
	Zhanghailiang <zhang.zhanghailiang@huawei.com>
Subject: Re: [PATCH v2] json: Fix a memleak in parse_pair()
Date: Mon, 16 Nov 2020 21:22:16 +0800	[thread overview]
Message-ID: <5FB27D08.2070600@huawei.com> (raw)
In-Reply-To: <895daa42-e241-ff9c-6f55-a369ccfe9eb9@redhat.com>

On 2020/11/16 19:43, Philippe Mathieu-Daudé wrote:
> On 11/16/20 7:42 AM, Markus Armbruster wrote:
>> "Chenqun (kuhn)" <kuhn.chenqun@huawei.com> writes:
>>
>>>> -----Original Message-----
>>>> From: Chenzhendong (alex)
>>>> Sent: Friday, November 13, 2020 10:55 PM
>>>> To: armbru@redhat.com
>>>> Cc: Chenzhendong (alex) <alex.chen@huawei.com>; qemu-devel@nongnu.org;
>>>> qemu-trivial@nongnu.org; Zhanghailiang <zhang.zhanghailiang@huawei.com>;
>>>> Chenqun (kuhn) <kuhn.chenqun@huawei.com>
>>>> Subject: [PATCH v2] json: Fix a memleak in parse_pair()
>>>>
>>>> In qobject_type(), NULL is returned when the 'QObject' returned from
>>>> parse_value() is not of QString type, and this 'QObject' memory will leaked.
>>>> So we need to first cache the 'QObject' returned from parse_value(), and finally
>>>> free 'QObject' memory at the end of the function.
>>>> Also, we add a testcast about invalid dict key.
>>>>
>>>> The memleak stack is as follows:
>>>> Direct leak of 32 byte(s) in 1 object(s) allocated from:
>>>>     #0 0xfffe4b3c34fb in __interceptor_malloc (/lib64/libasan.so.4+0xd34fb)
>>>>     #1 0xfffe4ae48aa3 in g_malloc (/lib64/libglib-2.0.so.0+0x58aa3)
>>>>     #2 0xaaab3557d9f7 in qnum_from_int
>>>> /Images/source_org/qemu_master/qemu/qobject/qnum.c:25
>>>>     #3 0xaaab35584d23 in parse_literal
>>>> /Images/source_org/qemu_master/qemu/qobject/json-parser.c:511
>>>>     #4 0xaaab35584d23 in parse_value
>>>> /Images/source_org/qemu_master/qemu/qobject/json-parser.c:554
>>>>     #5 0xaaab35583d77 in parse_pair
>>>> /Images/source_org/qemu_master/qemu/qobject/json-parser.c:270
>>>>     #6 0xaaab355845db in parse_object
>>>> /Images/source_org/qemu_master/qemu/qobject/json-parser.c:327
>>>>     #7 0xaaab355845db in parse_value
>>>> /Images/source_org/qemu_master/qemu/qobject/json-parser.c:546
>>>>     #8 0xaaab35585b1b in json_parser_parse
>>>> /Images/source_org/qemu_master/qemu/qobject/json-parser.c:580
>>>>     #9 0xaaab35583703 in json_message_process_token
>>>> /Images/source_org/qemu_master/qemu/qobject/json-streamer.c:92
>>>>     #10 0xaaab355ddccf in json_lexer_feed_char
>>>> /Images/source_org/qemu_master/qemu/qobject/json-lexer.c:313
>>>>     #11 0xaaab355de0eb in json_lexer_feed
>>>> /Images/source_org/qemu_master/qemu/qobject/json-lexer.c:350
>>>>     #12 0xaaab354aff67 in tcp_chr_read
>>>> /Images/source_org/qemu_master/qemu/chardev/char-socket.c:525
>>>>     #13 0xfffe4ae429db in g_main_context_dispatch
>>>> (/lib64/libglib-2.0.so.0+0x529db)
>>>>     #14 0xfffe4ae42d8f  (/lib64/libglib-2.0.so.0+0x52d8f)
>>>>     #15 0xfffe4ae430df in g_main_loop_run (/lib64/libglib-2.0.so.0+0x530df)
>>>>     #16 0xaaab34d70bff in iothread_run
>>>> /Images/source_org/qemu_master/qemu/iothread.c:82
>>>>     #17 0xaaab3559d71b in qemu_thread_start
>>>> /Images/source_org/qemu_master/qemu/util/qemu-thread-posix.c:519
>>>>
> ...
>>
>> Queued, thanks!
> 
> If possible can you s%/Images/source_org/qemu_master/qemu/%% to make
> description more readable...?
> 

Hi Philippe,
I am sorry for that, considering that the patch has been queued,
do I need to modify the commit message and send patch v3?

Thanks,
Alex




  reply	other threads:[~2020-11-16 13:24 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-11-13 14:55 [PATCH v2] json: Fix a memleak in parse_pair() Alex Chen
2020-11-14  9:08 ` Chenqun (kuhn)
2020-11-16  6:42   ` Markus Armbruster
2020-11-16 11:43     ` Philippe Mathieu-Daudé
2020-11-16 13:22       ` Alex Chen [this message]
2020-11-16 14:03         ` Markus Armbruster
2020-11-16 14:06           ` Philippe Mathieu-Daudé

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=5FB27D08.2070600@huawei.com \
    --to=alex.chen@huawei.com \
    --cc=armbru@redhat.com \
    --cc=kuhn.chenqun@huawei.com \
    --cc=philmd@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-trivial@nongnu.org \
    --cc=zhang.zhanghailiang@huawei.com \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).