summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2021-06-02 09:33:35 +0200
committerThomas Haller <thaller@redhat.com>2021-06-04 09:29:22 +0200
commit7e8e6836e0ec3bac1c5b3e681f87363cd46aec2d (patch)
tree9821f4ebea44478589a5d0482de6eb83db726862
parent25f4d23e13b65ff766a8b7d7fdb6339cbb92d972 (diff)
downloadNetworkManager-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.c6
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,