diff mbox

hwe_regmatch: match error

Message ID 1476410631-7840-1-git-send-email-huang.wei56@zte.com.cn (mailing list archive)
State Not Applicable, archived
Delegated to: Mike Snitzer
Headers show

Commit Message

huang.wei56@zte.com.cn Oct. 14, 2016, 2:03 a.m. UTC
From: "wei.huang" <huang.wei56@zte.com.cn>

Problem:
when we configure a device like vendor, product, revision all null in multipath.conf, hwe_regmatch always return 0.

Reasons:
\!hwe2->vendor, \!hwe2->product and \!hwe2->revision are all true.

Signed-off-by: wei.huang <huang.wei56@zte.com.cn>
---
 libmultipath/config.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
diff mbox

Patch

diff --git a/libmultipath/config.c b/libmultipath/config.c
index a48b8af..d99cd75 100644
--- a/libmultipath/config.c
+++ b/libmultipath/config.c
@@ -80,7 +80,8 @@  hwe_regmatch (struct hwentry *hwe1, struct hwentry *hwe2)
 	    regcomp(&rre, hwe1->revision, REG_EXTENDED|REG_NOSUB))
 		goto out_pre;
 
-	if ((!hwe1->vendor || !hwe2->vendor ||
+	if ((hwe2->vendor || hwe2->product || hwe2->revision) &&
+	    (!hwe1->vendor || !hwe2->vendor ||
 	     !regexec(&vre, hwe2->vendor, 0, NULL, 0)) &&
 	    (!hwe1->product || !hwe2->product ||
 	     !regexec(&pre, hwe2->product, 0, NULL, 0)) &&