|
|
22d2e5 |
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
|
22d2e5 |
From: Enzo Matsumiya <ematsumiya@suse.de>
|
|
|
22d2e5 |
Date: Fri, 7 Feb 2020 11:45:25 -0300
|
|
|
22d2e5 |
Subject: [PATCH] libmultipath: fix files read from config_dir
|
|
|
22d2e5 |
|
|
|
22d2e5 |
If config_dir contains a file named, for example, "some.conf.backup", this file
|
|
|
22d2e5 |
will still be loaded by multipath because process_config_dir()
|
|
|
22d2e5 |
(libmultipath/config.c) uses strstr() to check for the ".conf" extension, but
|
|
|
22d2e5 |
that doesn't guarantee that ".conf" is at the end of the filename.
|
|
|
22d2e5 |
|
|
|
22d2e5 |
This patch will make sure that only files ending in ".conf" are loaded from
|
|
|
22d2e5 |
config_dir.
|
|
|
22d2e5 |
|
|
|
22d2e5 |
This is to comply with config_dir entry description in man 5 multipath.conf.
|
|
|
22d2e5 |
|
|
|
22d2e5 |
Signed-off-by: Enzo Matsumiya <ematsumiya@suse.de>
|
|
|
22d2e5 |
Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
|
|
|
22d2e5 |
---
|
|
|
22d2e5 |
libmultipath/config.c | 5 ++++-
|
|
|
22d2e5 |
1 file changed, 4 insertions(+), 1 deletion(-)
|
|
|
22d2e5 |
|
|
|
22d2e5 |
diff --git a/libmultipath/config.c b/libmultipath/config.c
|
|
|
22d2e5 |
index 2c32acf7..791d16a1 100644
|
|
|
22d2e5 |
--- a/libmultipath/config.c
|
|
|
22d2e5 |
+++ b/libmultipath/config.c
|
|
|
22d2e5 |
@@ -684,8 +684,11 @@ process_config_dir(struct config *conf, vector keywords, char *dir)
|
|
|
22d2e5 |
sr.n = n;
|
|
|
22d2e5 |
pthread_cleanup_push_cast(free_scandir_result, &sr);
|
|
|
22d2e5 |
for (i = 0; i < n; i++) {
|
|
|
22d2e5 |
- if (!strstr(namelist[i]->d_name, ".conf"))
|
|
|
22d2e5 |
+ char *ext = strrchr(namelist[i]->d_name, '.');
|
|
|
22d2e5 |
+
|
|
|
22d2e5 |
+ if (!ext || strcmp(ext, ".conf"))
|
|
|
22d2e5 |
continue;
|
|
|
22d2e5 |
+
|
|
|
22d2e5 |
old_hwtable_size = VECTOR_SIZE(conf->hwtable);
|
|
|
22d2e5 |
snprintf(path, LINE_MAX, "%s/%s", dir, namelist[i]->d_name);
|
|
|
22d2e5 |
path[LINE_MAX-1] = '\0';
|
|
|
22d2e5 |
--
|
|
|
22d2e5 |
2.17.2
|
|
|
22d2e5 |
|