On 11/16/20 3:03 PM, Markus Armbruster wrote: > 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?
As the patch was already queued, this was a comment for the maintainer, sorry for not being clear enough. > > I'll take care of it, no need to respin. Thanks! Thanks!