From: Tobias Brunner Date: Wed, 21 Feb 2018 10:53:55 +0000 (+0100) Subject: charon-nm: Fix building list of DNS/MDNS servers with libnm X-Git-Tag: 5.6.3dr1~49 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ee8c25516a97a2c880a8033e1663628b6b05646a;p=thirdparty%2Fstrongswan.git charon-nm: Fix building list of DNS/MDNS servers with libnm g_variant_builder_add() creates a new GVariant using g_variant_new() and then adds it to the builder. Passing a GVariant probably adds the pointer to the array, not the value. I think an alternative fix would be to use "@u" as type string for the g_variant_builder_add() call, then the already allocated GVariant is adopted. Fixes: 9a71b7219ca3 ("charon-nm: Port to libnm") --- diff --git a/src/charon-nm/nm/nm_service.c b/src/charon-nm/nm/nm_service.c index 9beac392a2..c427331811 100644 --- a/src/charon-nm/nm/nm_service.c +++ b/src/charon-nm/nm/nm_service.c @@ -65,8 +65,7 @@ static GVariant* handler_to_variant(nm_handler_t *handler, enumerator = handler->create_enumerator(handler, type); while (enumerator->enumerate(enumerator, &chunk)) { - g_variant_builder_add (&builder, "u", - g_variant_new_uint32 (*(uint32_t*)chunk.ptr)); + g_variant_builder_add (&builder, "u", *(uint32_t*)chunk.ptr); } enumerator->destroy(enumerator);