Alex Chen <alex.c...@huawei.com> writes: > On 2020/11/16 19:43, Philippe Mathieu-Daudé wrote: >> On 11/16/20 7:42 AM, Markus Armbruster wrote: >>> "Chenqun (kuhn)" <kuhn.chen...@huawei.com> writes: >>> >>>>> -----Original Message----- >>>>> From: Chenzhendong (alex) >>>>> Sent: Friday, November 13, 2020 10:55 PM >>>>> To: arm...@redhat.com >>>>> Cc: Chenzhendong (alex) <alex.c...@huawei.com>; qemu-devel@nongnu.org; >>>>> qemu-triv...@nongnu.org; Zhanghailiang <zhang.zhanghaili...@huawei.com>; >>>>> Chenqun (kuhn) <kuhn.chen...@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?
I'll take care of it, no need to respin. Thanks!