From 03914cbf2d99ba3e6fb8261539d9d9966e3a7ce2 Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Wed, 2 Jun 2021 09:33:35 +0200 Subject: [PATCH] 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') (cherry picked from commit 7e8e6836e0ec3bac1c5b3e681f87363cd46aec2d) --- src/core/settings/plugins/keyfile/nms-keyfile-utils.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/core/settings/plugins/keyfile/nms-keyfile-utils.c b/src/core/settings/plugins/keyfile/nms-keyfile-utils.c index f3dffdae49..ca1233f580 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,