NetworkManager/src
Thomas Haller 3b8aab2999 settings/keyfile: check whether profile can be re-read before writing to disk and fail
First of all, keyfile writer (and reader) are supposed to be able to store
every profile to disk and re-read a valid profile back. Note that the profile
might be modified in the process, for example, blob certificates are written
to a file. So, the result might no be exactly the same, but it must still be
valid (and should only diverge in expected ways from the original, like mangled
certificates).

Previously, we would re-read the profile after writing to disk. If that failed,
we would only fail an assertion but otherwise proceeed. It is a bug
after all. However, it's bad to check only after writing to file,
because it results in a unreadable profile on disk, and in the first
moment it appears that noting went wrong. Instead, we should fail early.

Note that nms_keyfile_reader_from_keyfile() must entirely operate on the in-memory
representation of the keyfile. It must not actually access any files on disk. Hence,
moving this check before writing the profile must work. Otherwise, that would be
a separate bug. Actually, keyfile reader and writer violate this. I
added FIXME comments for that. But it doesn't interfere with this
patch.
2019-08-27 11:45:06 +02:00
..
devices wifi: support WPA2 ad-hoc (ibss-rsn) 2019-08-26 10:38:02 +02:00
dhcp dhcp: minor refactoring to switch default IPv4 DHCP plugin to "nettools" with one-line change 2019-08-13 09:42:15 +02:00
dns all: drop emacs file variables from source files 2019-06-11 10:04:00 +02:00
dnsmasq all: drop emacs file variables from source files 2019-06-11 10:04:00 +02:00
initrd shared,all: return boolean success from nm_utils_file_get_contents() 2019-08-08 11:59:59 +02:00
ndisc all: drop emacs file variables from source files 2019-06-11 10:04:00 +02:00
platform wifi: expose IBSS_RSN capability 2019-08-26 10:25:00 +02:00
ppp core/pppd-plugin: wait to recover port settings before notifying death 2019-06-14 13:29:45 +02:00
settings settings/keyfile: check whether profile can be re-read before writing to disk and fail 2019-08-27 11:45:06 +02:00
supplicant wifi: drop support for wpa-none key-mgmt 2019-08-26 10:25:00 +02:00
systemd systemd: merge branch systemd into master 2019-07-26 15:00:08 +02:00
tests src/tests: show exit status in test failure of test_nm_utils_kill_child() 2019-06-13 11:27:32 +02:00
vpn firewall: refactor "nm-firewall-manager.c" to not use GDBusProxy 2019-08-07 13:21:48 +02:00
main-utils.c all: drop emacs file variables from source files 2019-06-11 10:04:00 +02:00
main-utils.h all: drop emacs file variables from source files 2019-06-11 10:04:00 +02:00
main.c all: drop emacs file variables from source files 2019-06-11 10:04:00 +02:00
meson.build build: fix meson warning about wrong custom target argument 2019-08-05 16:05:30 +02:00
NetworkManagerUtils.c libnm,core: add support for "suppress_prefixlength" rule attribute 2019-07-16 10:03:17 +02:00
NetworkManagerUtils.h core: add flag to nm_shutdown_wait_obj_register_full() for freeing allcated message string 2019-06-26 12:26:11 +02:00
nm-act-request.c all: drop emacs file variables from source files 2019-06-11 10:04:00 +02:00
nm-act-request.h all: drop emacs file variables from source files 2019-06-11 10:04:00 +02:00
nm-active-connection.c settings: rework tracking settings connections and settings plugins 2019-07-16 19:09:08 +02:00
nm-active-connection.h all: drop emacs file variables from source files 2019-06-11 10:04:00 +02:00
nm-audit-manager.c settings: add audit-logging for connection load and reload 2019-07-16 12:35:36 +02:00
nm-audit-manager.h settings: add audit-logging for connection load and reload 2019-07-16 12:35:36 +02:00
nm-auth-manager.c auth: drop unused idle-reason for NMAuthManagerCallId 2019-08-10 10:36:17 +02:00
nm-auth-manager.h all: drop emacs file variables from source files 2019-06-11 10:04:00 +02:00
nm-auth-subject.c all: drop emacs file variables from source files 2019-06-11 10:04:00 +02:00
nm-auth-subject.h all: drop emacs file variables from source files 2019-06-11 10:04:00 +02:00
nm-auth-utils.c auth-chain: track auth-chains in embedded CList 2019-06-13 16:10:53 +02:00
nm-auth-utils.h auth-chain: track auth-chains in embedded CList 2019-06-13 16:10:53 +02:00
nm-checkpoint-manager.c all: drop emacs file variables from source files 2019-06-11 10:04:00 +02:00
nm-checkpoint-manager.h all: drop emacs file variables from source files 2019-06-11 10:04:00 +02:00
nm-checkpoint.c settings/trivial: rename NM_SETTINGS_CONNECTION_PERSIST_MODE_DISK to NM_SETTINGS_CONNECTION_PERSIST_MODE_TO_DISK 2019-07-25 22:02:00 +02:00
nm-checkpoint.h all: drop emacs file variables from source files 2019-06-11 10:04:00 +02:00
nm-config-data.c config: simplify no-auto-default list handling and sort entries 2019-07-25 10:52:47 +02:00
nm-config-data.h all: drop emacs file variables from source files 2019-06-11 10:04:00 +02:00
nm-config.c config: simplify no-auto-default list handling and sort entries 2019-07-25 10:52:47 +02:00
nm-config.h all: drop emacs file variables from source files 2019-06-11 10:04:00 +02:00
nm-connectivity.c connectivity: make platform argument to nm_connectivity_check_start() optional 2019-06-18 15:49:09 +02:00
nm-connectivity.h device: don't start connectivity check on unconfigured devices 2019-06-18 15:49:09 +02:00
nm-core-utils.c shared,all: return boolean success from nm_utils_file_get_contents() 2019-08-08 11:59:59 +02:00
nm-core-utils.h core: add and use NM_MATCH_SPEC_*_TAG defines instead of plain strings 2019-07-25 10:48:40 +02:00
nm-dbus-manager.c dbus-manager: drop unused private-socket functions from "nm-dbus-manager.c" 2019-08-08 10:07:55 +02:00
nm-dbus-manager.h dbus-manager: drop unused private-socket functions from "nm-dbus-manager.c" 2019-08-08 10:07:55 +02:00
nm-dbus-object.c all: drop emacs file variables from source files 2019-06-11 10:04:00 +02:00
nm-dbus-object.h all: drop emacs file variables from source files 2019-06-11 10:04:00 +02:00
nm-dbus-utils.c all: drop emacs file variables from source files 2019-06-11 10:04:00 +02:00
nm-dbus-utils.h all: drop emacs file variables from source files 2019-06-11 10:04:00 +02:00
nm-dcb.c all: drop emacs file variables from source files 2019-06-11 10:04:00 +02:00
nm-dcb.h all: drop emacs file variables from source files 2019-06-11 10:04:00 +02:00
nm-dhcp4-config.c all: drop emacs file variables from source files 2019-06-11 10:04:00 +02:00
nm-dhcp4-config.h all: drop emacs file variables from source files 2019-06-11 10:04:00 +02:00
nm-dhcp6-config.c all: drop emacs file variables from source files 2019-06-11 10:04:00 +02:00
nm-dhcp6-config.h all: drop emacs file variables from source files 2019-06-11 10:04:00 +02:00
nm-dispatcher.c all: drop emacs file variables from source files 2019-06-11 10:04:00 +02:00
nm-dispatcher.h all: drop emacs file variables from source files 2019-06-11 10:04:00 +02:00
nm-firewall-manager.c firewall: refactor "nm-firewall-manager.c" to not use GDBusProxy 2019-08-07 13:21:48 +02:00
nm-firewall-manager.h firewall: refactor "nm-firewall-manager.c" to not use GDBusProxy 2019-08-07 13:21:48 +02:00
nm-hostname-manager.c all: drop emacs file variables from source files 2019-06-11 10:04:00 +02:00
nm-hostname-manager.h all: drop emacs file variables from source files 2019-06-11 10:04:00 +02:00
nm-iface-helper.c dhcp: make "systemd" DHCP plugin configurable 2019-08-13 09:42:15 +02:00
nm-ip4-config.c all: allow configuring default-routes as manual, static routes 2019-08-13 10:45:04 +02:00
nm-ip4-config.h all: drop emacs file variables from source files 2019-06-11 10:04:00 +02:00
nm-ip6-config.c all: allow configuring default-routes as manual, static routes 2019-08-13 10:45:04 +02:00
nm-ip6-config.h all: drop emacs file variables from source files 2019-06-11 10:04:00 +02:00
nm-keep-alive.c core: add and use nm_keep_alive_destroy() 2019-06-27 13:25:40 +02:00
nm-keep-alive.h core: add and use nm_keep_alive_destroy() 2019-06-27 13:25:40 +02:00
nm-logging.c all: drop emacs file variables from source files 2019-06-11 10:04:00 +02:00
nm-logging.h core/logging: don't log plain pointer value from nm_log_ptr() 2019-08-23 11:19:17 +02:00
nm-manager.c shared: add nm_c_list_elem_find_first() helper macro 2019-08-08 10:07:15 +02:00
nm-manager.h libnm,core: Add ConnectivityCheckUri property and accessors 2019-07-22 21:03:09 +02:00
nm-netns.c policy-routing: take ownership of externally configured rules 2019-07-16 10:16:07 +02:00
nm-netns.h all: drop emacs file variables from source files 2019-06-11 10:04:00 +02:00
nm-pacrunner-manager.c all: drop emacs file variables from source files 2019-06-11 10:04:00 +02:00
nm-pacrunner-manager.h all: drop emacs file variables from source files 2019-06-11 10:04:00 +02:00
nm-policy.c settings: rework tracking settings connections and settings plugins 2019-07-16 19:09:08 +02:00
nm-policy.h all: drop emacs file variables from source files 2019-06-11 10:04:00 +02:00
nm-proxy-config.c all: drop emacs file variables from source files 2019-06-11 10:04:00 +02:00
nm-proxy-config.h all: drop emacs file variables from source files 2019-06-11 10:04:00 +02:00
nm-rfkill-manager.c all: drop emacs file variables from source files 2019-06-11 10:04:00 +02:00
nm-rfkill-manager.h all: drop emacs file variables from source files 2019-06-11 10:04:00 +02:00
nm-session-monitor.c all: drop emacs file variables from source files 2019-06-11 10:04:00 +02:00
nm-session-monitor.h all: drop emacs file variables from source files 2019-06-11 10:04:00 +02:00
nm-sleep-monitor.c all: drop emacs file variables from source files 2019-06-11 10:04:00 +02:00
nm-sleep-monitor.h all: drop emacs file variables from source files 2019-06-11 10:04:00 +02:00
nm-test-utils-core.h all: drop emacs file variables from source files 2019-06-11 10:04:00 +02:00
nm-types.h all: drop emacs file variables from source files 2019-06-11 10:04:00 +02:00
org.freedesktop.NetworkManager.conf wifi-p2p: rename Wi-Fi P2P 2019-02-01 17:02:57 +01:00