[PATCH 1/1] libmultipath: fix files read from config_dir

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



If config_dir contains a file named, for example, "some.conf.backup", this file
will still be loaded by multipath because process_config_dir()
(libmultipath/config.c) uses strstr() to check for the ".conf" extension, but
that doesn't guarantee that ".conf" is at the end of the filename.

This patch will make sure that only files ending in ".conf" are loaded from
config_dir.

This is to comply with config_dir entry description in man 5 multipath.conf.

Signed-off-by: Enzo Matsumiya <ematsumiya@xxxxxxx>
---
 libmultipath/config.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/libmultipath/config.c b/libmultipath/config.c
index 20e3b8bf..4785ade8 100644
--- a/libmultipath/config.c
+++ b/libmultipath/config.c
@@ -671,8 +671,11 @@ process_config_dir(struct config *conf, vector keywords, char *dir)
 	sr.n = n;
 	pthread_cleanup_push_cast(free_scandir_result, &sr);
 	for (i = 0; i < n; i++) {
-		if (!strstr(namelist[i]->d_name, ".conf"))
+		char *ext = strrchr(namelist[i]->d_name, '.');
+
+		if (!ext || strcmp(ext, ".conf"))
 			continue;
+
 		old_hwtable_size = VECTOR_SIZE(conf->hwtable);
 		snprintf(path, LINE_MAX, "%s/%s", dir, namelist[i]->d_name);
 		path[LINE_MAX-1] = '\0';
-- 
2.16.4


--
dm-devel mailing list
dm-devel@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/dm-devel




[Index of Archives]     [DM Crypt]     [Fedora Desktop]     [ATA RAID]     [Fedora Marketing]     [Fedora Packaging]     [Fedora SELinux]     [Yosemite Discussion]     [KDE Users]     [Fedora Docs]

  Powered by Linux