diff options
author | Thomas Haller <thaller@redhat.com> | 2021-06-02 09:33:35 +0200 |
---|---|---|
committer | Thomas Haller <thaller@redhat.com> | 2021-06-04 09:29:22 +0200 |
commit | 7e8e6836e0ec3bac1c5b3e681f87363cd46aec2d (patch) | |
tree | 9821f4ebea44478589a5d0482de6eb83db726862 | |
parent | 25f4d23e13b65ff766a8b7d7fdb6339cbb92d972 (diff) | |
download | NetworkManager-7e8e6836e0ec3bac1c5b3e681f87363cd46aec2d.tar.gz |
keyfile: fix comparison in nms_keyfile_nmmeta_read()
"uuid" is returned from nms_keyfile_nmmeta_check_filename(),
and contains "$UUID.nmmeta". We must compare only the first
"uuid_len" bytes.
Fixes: 064544cc0787 ('settings: support storing "shadowed-storage" to .nmmeta files')
-rw-r--r-- | src/core/settings/plugins/keyfile/nms-keyfile-utils.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/core/settings/plugins/keyfile/nms-keyfile-utils.c b/src/core/settings/plugins/keyfile/nms-keyfile-utils.c index affe1c3d2a..2391a9fd77 100644 --- a/src/core/settings/plugins/keyfile/nms-keyfile-utils.c +++ b/src/core/settings/plugins/keyfile/nms-keyfile-utils.c @@ -137,7 +137,11 @@ nms_keyfile_nmmeta_read(const char * dirname, NMMETA_KF_GROUP_NAME_NMMETA, NMMETA_KF_KEY_NAME_NMMETA_UUID, NULL); - if (!nm_streq0(v_uuid, uuid)) + if (!v_uuid) + return FALSE; + if (strncmp(v_uuid, uuid, uuid_len) != 0) + return FALSE; + if (v_uuid[uuid_len] != '\0') return FALSE; loaded_path = g_key_file_get_string(kf, |