All of lore.kernel.org
 help / color / mirror / Atom feed
From: Markus Armbruster <armbru@redhat.com>
To: Thomas Huth <thuth@redhat.com>
Cc: "Marc-André Lureau" <marcandre.lureau@redhat.com>, qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH] tests/check-qjson: fix a leak
Date: Mon, 03 Sep 2018 10:00:05 +0200	[thread overview]
Message-ID: <87o9df80ze.fsf@dusky.pond.sub.org> (raw)
In-Reply-To: <000c9289-430a-5b98-09a4-060aaa9ba4fb@redhat.com> (Thomas Huth's message of "Mon, 3 Sep 2018 07:54:01 +0200")

Thomas Huth <thuth@redhat.com> writes:

> On 2018-09-03 07:51, Markus Armbruster wrote:
>> Thomas Huth <thuth@redhat.com> writes:
>> 
>>> On 2018-09-01 23:19, Marc-André Lureau wrote:
>>>> Spotted by ASAN:
>>>> =================================================================
>>>> ==11893==ERROR: LeakSanitizer: detected memory leaks
>>>>
>>>> Direct leak of 1120 byte(s) in 28 object(s) allocated from:
>>>>     #0 0x7fd0515b0c48 in malloc (/lib64/libasan.so.5+0xeec48)
>>>>     #1 0x7fd050ffa3c5 in g_malloc (/lib64/libglib-2.0.so.0+0x523c5)
>>>>     #2 0x559e708b56a4 in qstring_from_str /home/elmarco/src/qq/qobject/qstring.c:66
>>>>     #3 0x559e708b4fe0 in qstring_new /home/elmarco/src/qq/qobject/qstring.c:23
>>>>     #4 0x559e708bda7d in parse_string /home/elmarco/src/qq/qobject/json-parser.c:143
>>>>     #5 0x559e708c1009 in parse_literal /home/elmarco/src/qq/qobject/json-parser.c:484
>>>>     #6 0x559e708c1627 in parse_value /home/elmarco/src/qq/qobject/json-parser.c:547
>>>>     #7 0x559e708c1c67 in json_parser_parse /home/elmarco/src/qq/qobject/json-parser.c:573
>>>>     #8 0x559e708bc0ff in json_message_process_token /home/elmarco/src/qq/qobject/json-streamer.c:92
>>>>     #9 0x559e708d1655 in json_lexer_feed_char /home/elmarco/src/qq/qobject/json-lexer.c:292
>>>>     #10 0x559e708d1fe1 in json_lexer_feed /home/elmarco/src/qq/qobject/json-lexer.c:339
>>>>     #11 0x559e708bc856 in json_message_parser_feed /home/elmarco/src/qq/qobject/json-streamer.c:121
>>>>     #12 0x559e708b8b4b in qobject_from_jsonv /home/elmarco/src/qq/qobject/qjson.c:69
>>>>     #13 0x559e708b8d02 in qobject_from_json /home/elmarco/src/qq/qobject/qjson.c:83
>>>>     #14 0x559e708a74ae in from_json_str /home/elmarco/src/qq/tests/check-qjson.c:30
>>>>     #15 0x559e708a9f83 in utf8_string /home/elmarco/src/qq/tests/check-qjson.c:781
>>>>     #16 0x7fd05101bc49 in test_case_run gtestutils.c:2255
>>>>     #17 0x7fd05101bc49 in g_test_run_suite_internal gtestutils.c:2339
>>>>
>>>> Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
>>>> ---
>>>>  tests/check-qjson.c | 1 +
>>>>  1 file changed, 1 insertion(+)
>>>>
>>>> diff --git a/tests/check-qjson.c b/tests/check-qjson.c
>>>> index cc13f3d41e..d876a7a96e 100644
>>>> --- a/tests/check-qjson.c
>>>> +++ b/tests/check-qjson.c
>>>> @@ -780,6 +780,7 @@ static void utf8_string(void)
>>>>              if (!strstr(json_out, "\\uFFFD")) {
>>>>                  str = from_json_str(json_out, j, &error_abort);
>>>>                  g_assert_cmpstr(qstring_get_try_str(str), ==, utf8_in);
>>>> +                qobject_unref(str);
>>>>              }
>>>>          }
>>>>      }
>>>>
>>>
>>> There are other occurances of from_json_str() which are not followed by
>>> an object_unref() ... do they need to be fixed as well?
>>> (e.g. at the end of escaped_string(), or earlier in utf8_string())
>> 
>> These are all asserted to be null, aren't they?
>
> Ah, right, sorry, it's still too early in the morning here, I guess ;-)

I was about to write "I should've waited for the coffee to kick in" when
I remembered what g_assert(!str) means :)

  reply	other threads:[~2018-09-03  8:00 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-09-01 21:19 [Qemu-devel] [PATCH] tests/check-qjson: fix a leak Marc-André Lureau
2018-09-03  5:09 ` Thomas Huth
2018-09-03  5:51   ` Markus Armbruster
2018-09-03  5:54     ` Thomas Huth
2018-09-03  8:00       ` Markus Armbruster [this message]
2018-09-03  5:41 ` Markus Armbruster

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=87o9df80ze.fsf@dusky.pond.sub.org \
    --to=armbru@redhat.com \
    --cc=marcandre.lureau@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=thuth@redhat.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 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.