Use strlen() when checking for valid wwid
authorHannes Reinecke <hare@suse.de>
Tue, 19 Aug 2014 10:31:10 +0000 (12:31 +0200)
committerChristophe Varoqui <christophe.varoqui@opensvc.com>
Sun, 29 Mar 2015 16:11:26 +0000 (18:11 +0200)
The wwid is required to be a string, so we should be using
strlen() when checking for a valid WWID.

Signed-off-by: Hannes Reinecke <hare@suse.de>
libmultipath/configure.c
multipathd/main.c

index ddbd3ed..ef217de 100644 (file)
@@ -734,7 +734,6 @@ coalesce_paths (struct vectors * vecs, vector newmp, char * refwwid, int force_r
 {
        int r = 1;
        int k, i;
-       char empty_buff[WWID_SIZE];
        char params[PARAMS_SIZE];
        struct multipath * mpp;
        struct path * pp1;
@@ -742,8 +741,6 @@ coalesce_paths (struct vectors * vecs, vector newmp, char * refwwid, int force_r
        vector curmp = vecs->mpvec;
        vector pathvec = vecs->pathvec;
 
-       memset(empty_buff, 0, WWID_SIZE);
-
        /* ignore refwwid if it's empty */
        if (refwwid && !strlen(refwwid))
                refwwid = NULL;
@@ -757,7 +754,7 @@ coalesce_paths (struct vectors * vecs, vector newmp, char * refwwid, int force_r
                /* skip this path for some reason */
 
                /* 1. if path has no unique id or wwid blacklisted */
-               if (memcmp(empty_buff, pp1->wwid, WWID_SIZE) == 0 ||
+               if (strlen(pp1->wwid) == 0 ||
                    filter_path(conf, pp1) > 0) {
                        orphan_path(pp1, "wwid blacklisted");
                        continue;
index 2d527df..b86e3b6 100644 (file)
@@ -482,7 +482,6 @@ int
 ev_add_path (struct path * pp, struct vectors * vecs)
 {
        struct multipath * mpp;
-       char empty_buff[WWID_SIZE] = {0};
        char params[PARAMS_SIZE] = {0};
        int retries = 3;
        int start_waiter = 0;
@@ -491,7 +490,7 @@ ev_add_path (struct path * pp, struct vectors * vecs)
        /*
         * need path UID to go any further
         */
-       if (memcmp(empty_buff, pp->wwid, WWID_SIZE) == 0) {
+       if (strlen(pp->wwid) == 0) {
                condlog(0, "%s: failed to get path uid", pp->dev);
                goto fail; /* leave path added to pathvec */
        }