All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sebastian Herbszt <herbszt@gmx.de>
To: Bart Van Assche <bvanassche@acm.org>
Cc: device-mapper development <dm-devel@redhat.com>
Subject: Re: [PATCH 5/5] libmultipath: Accept "*" as a valid regular expression
Date: Thu, 24 Jul 2014 16:55:59 +0200	[thread overview]
Message-ID: <20140724165559.000076e3@localhost> (raw)
In-Reply-To: <53C9191C.4070705@acm.org>

Bart Van Assche wrote:
> Inside libmultipath regcomp() is used to compile regular expressions
> specified in /etc/multipath.conf. Many multipath.conf examples contain
> 'product_type "*"'. However, "*" is not a valid POSIX regular expression.
> Hence this patch that changes the regular expression "*" into ".*".
> 
> Signed-off-by: Bart Van Assche <bvanassche@acm.org>
> ---
>  libmultipath/blacklist.c | 15 +++++++++++----
>  1 file changed, 11 insertions(+), 4 deletions(-)
> 
> diff --git a/libmultipath/blacklist.c b/libmultipath/blacklist.c
> index 651bd7e..e5c287e 100644
> --- a/libmultipath/blacklist.c
> +++ b/libmultipath/blacklist.c
> @@ -63,6 +63,13 @@ alloc_ble_device (vector blist)
>  	return 0;
>  }
>  
> +static int lm_regcomp(regex_t *preg, const char *pattern, int cflags)
> +{
> +	if (strcmp(pattern, "*") == 0)
> +		pattern = ".*";
> +	return regcomp(preg, pattern, cflags);
> +}
> +
>  extern int
>  set_ble_device (vector blist, char * vendor, char * product, int origin)
>  {
> @@ -77,16 +84,16 @@ set_ble_device (vector blist, char * vendor, char * product, int origin)
>  		return 1;
>  
>  	if (vendor) {
> -		if (regcomp(&ble->vendor_reg, vendor,
> -			    REG_EXTENDED|REG_NOSUB)) {
> +		if (lm_regcomp(&ble->vendor_reg, vendor,
> +			       REG_EXTENDED|REG_NOSUB)) {
>  			FREE(vendor);
>  			return 1;
>  		}
>  		ble->vendor = vendor;
>  	}
>  	if (product) {
> -		if (regcomp(&ble->product_reg, product,
> -			    REG_EXTENDED|REG_NOSUB)) {
> +		if (lm_regcomp(&ble->product_reg, product,
> +			       REG_EXTENDED|REG_NOSUB)) {
>  			FREE(product);
>  			return 1;
>  		}

Is this change really required? With patch 4 we now get a proper error:
multipath.conf +14 parsing failed:            vendor "*"
multipath.conf +15 parsing failed:            product "*"
error parsing config file

I think it should be enough to modify the man page to mention vendor/product
are both regular expressions. This change might also confuse users since this
automagic "*" to ".*" only applies to the blacklist exceptions.

Sebastian

  reply	other threads:[~2014-07-24 14:55 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-07-18 12:52 [PATCH 0/5] Five small multipath-tools patches Bart Van Assche
2014-07-18 12:52 ` [PATCH 1/5] ALUA prioritizer: Remove an unused variable Bart Van Assche
2014-07-24 14:37   ` Sebastian Herbszt
2014-07-18 12:53 ` [PATCH 2/5] libmultipath: Simplify read_line() Bart Van Assche
2014-07-18 12:53 ` [PATCH 3/5] libmultipath: Zero-terminate sysfs_attr_get_value() result Bart Van Assche
2014-07-18 12:54 ` [PATCH 4/5] libmultipath: Print line number for which parsing failed Bart Van Assche
2014-07-24 14:44   ` Sebastian Herbszt
2014-07-25  9:15     ` Christophe Varoqui
2014-07-18 12:54 ` [PATCH 5/5] libmultipath: Accept "*" as a valid regular expression Bart Van Assche
2014-07-24 14:55   ` Sebastian Herbszt [this message]
2014-07-24 16:34     ` Bryn M. Reeves
2014-07-25  9:10       ` Christophe Varoqui
2014-07-24  8:29 ` [PATCH 0/5] Five small multipath-tools patches Christophe Varoqui

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20140724165559.000076e3@localhost \
    --to=herbszt@gmx.de \
    --cc=bvanassche@acm.org \
    --cc=dm-devel@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.