libnm: fix leak and return "failures" from nm_client_load_connections()

Due to this, `nmcli connection load` would also not print a warning
about failure to load obviously bogus files:

  $ nmcli connection load /bogus

Note that load is also used to unload files, so if the file name is a
possibly valid name for a non-existing file, there is no failure. For
example, we get no warning for

  $ nmcli connection load /etc/NetworkManager/system-connections/bogus

Even if currently no such file is loaded, then the operation would still
silently succeed, instead of succeeding the first time only. That is because
load should be idempotent.

[thaller@redhat.com: rewrote commit message]

Fixes: 4af6219226 ('libnm: implement nm_client_load_connections_async() by using GDBusConnection directly')

https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/issues/794

https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/979
This commit is contained in:
gaoxingwang 2021-09-13 11:00:13 +08:00 committed by Thomas Haller
parent 9ec9a92f17
commit 2a36f8c2f1
No known key found for this signature in database
GPG key ID: 29C2366E4DFC5728

View file

@ -5904,7 +5904,7 @@ nm_client_load_connections(NMClient * client,
return FALSE;
}
g_variant_get(ret, "(b^as)", NULL, &failures);
g_variant_get(ret, "(b^as)", NULL, failures);
return TRUE;
}