On Mon, Sep 21, 2020 at 09:57:33AM +0200, Ján Tomko wrote: > On a Thursday in 2020, Pavel Hrdina wrote: > > Signed-off-by: Pavel Hrdina <phrdina@xxxxxxxxxx> > > --- > > src/util/virfirewalld.c | 197 ++++++++++++++++---------------- > > tests/meson.build | 4 +- > > tests/networkxml2firewalltest.c | 39 ++++--- > > tests/virfirewalltest.c | 154 ++++++++++--------------- > > 4 files changed, 180 insertions(+), 214 deletions(-) > > > > diff --git a/src/util/virfirewalld.c b/src/util/virfirewalld.c > > index c14a6b6e65..69c8b73da0 100644 > > --- a/src/util/virfirewalld.c > > +++ b/src/util/virfirewalld.c > > @@ -196,9 +195,9 @@ virFirewallDGetBackend(void) > > int > > virFirewallDGetZones(char ***zones, size_t *nzones) > > { > > - DBusConnection *sysbus = virDBusGetSystemBus(); > > - DBusMessage *reply = NULL; > > - int ret = -1; > > + GDBusConnection *sysbus = virGDBusGetSystemBus(); > > + g_autoptr(GVariant) reply = NULL; > > + g_autoptr(GVariant) array = NULL; > > > > *nzones = 0; > > *zones = NULL; > > @@ -206,23 +205,20 @@ virFirewallDGetZones(char ***zones, size_t *nzones) > > if (!sysbus) > > return -1; > > > > - if (virDBusCallMethod(sysbus, > > - &reply, > > - NULL, > > - VIR_FIREWALL_FIREWALLD_SERVICE, > > - "/org/fedoraproject/FirewallD1", > > - "org.fedoraproject.FirewallD1.zone", > > - "getZones", > > - NULL) < 0) > > - goto cleanup; > > + if (virGDBusCallMethod(sysbus, > > + &reply, > > + NULL, > > + VIR_FIREWALL_FIREWALLD_SERVICE, > > + "/org/fedoraproject/FirewallD1", > > + "org.fedoraproject.FirewallD1.zone", > > + "getZones", > > + NULL) < 0) > > + return -1; > > > > - if (virDBusMessageDecode(reply, "a&s", nzones, zones) < 0) > > - goto cleanup; > > + g_variant_get(reply, "(@as)", array); > > Throughout the series you're not checking return values of > g_variant_get. > > I'm getting assertion errors with firewalld disabled: > (process:156524): GLib-CRITICAL **: 09:56:49.398: g_variant_get_type: assertion 'value != NULL' failed > > (process:156524): GLib-CRITICAL **: 09:56:49.399: g_variant_type_is_subtype_of: assertion 'g_variant_type_check (type)' failed > > (process:156524): GLib-CRITICAL **: 09:56:49.399: g_variant_dup_strv: assertion 'g_variant_is_of_type (value, G_VARIANT_TYPE_STRING_ARRAY)' failed So the issue here is that the g_variant_get should have been: g_variant_get(reply, "(@as)", &array); I'll post a patch shortly. Pavel
Attachment:
signature.asc
Description: PGP signature