[dm-devel] [PATCH 1/1] libmultipath: fix files read from config_dir
Martin Wilck
Martin.Wilck at suse.com
Fri Feb 7 17:08:11 UTC 2020
On Fri, 2020-02-07 at 11:45 -0300, Enzo Matsumiya wrote:
> 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 at suse.de>
> ---
> 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';
Reviewed-by: Martin Wilck <mwilck at suse.com>
--
Dr. Martin Wilck <mwilck at suse.com>, Tel. +49 (0)911 74053 2107
SUSE Software Solutions Germany GmbH
HRB 36809, AG Nürnberg GF: Felix
Imendörffer
More information about the dm-devel
mailing list