[dm-devel] [PATCH] libmultipath:fix loop traversed partly

Christophe Varoqui christophe.varoqui at opensvc.com
Fri Jul 22 09:44:52 UTC 2016


Your fix is now merged.
Thanks.

On Thu, Jul 14, 2016 at 2:09 PM, <zhang.kai16 at zte.com.cn> wrote:

> From: "zhang.kai" <zhang.kai16 at zte.com.cn>
>
> Problem:
> With each iteration of the vector_foreach_slot() loop statement,
> some slots couldn't be traversed when a slot is deleted from vector.
>
> Reasons:
> Currently,loop's index 'i' is not decremented correspondingly when a slot
> is
> deleted from vector.Meanwhile, in the vector_foreach_slot() loop, mpp is
> assigned
> from vector newmp directly, so find_slot() could be omitted.
>
> Signed-off-by: zhang.kai <zhang.kai16 at zte.com.cn>
> ---
>  libmultipath/configure.c | 6 ++----
>  1 file changed, 2 insertions(+), 4 deletions(-)
>
> diff --git a/libmultipath/configure.c b/libmultipath/configure.c
> index a9b9cf0..c06a3df 100644
> --- a/libmultipath/configure.c
> +++ b/libmultipath/configure.c
> @@ -924,16 +924,14 @@ coalesce_paths (struct vectors * vecs, vector newmp,
> char * refwwid, int force_r
>         if (newmp) {
>                 vector_foreach_slot (newmp, mpp, i) {
>                         char alias[WWID_SIZE];
> -                       int j;
>
>                         if (!deadmap(mpp))
>                                 continue;
>
>                         strncpy(alias, mpp->alias, WWID_SIZE - 1);
>
> -                       if ((j = find_slot(newmp, (void *)mpp)) != -1)
> -                               vector_del_slot(newmp, j);
> -
> +                       vector_del_slot(newmp, i);
> +                       i--;
>                         remove_map(mpp, vecs, 0);
>
>                         if (dm_flush_map(alias))
> --
> 2.8.1.windows.1
>
> --------------------------------------------------------
> ZTE Information Security Notice: The information contained in this mail
> (and any attachment transmitted herewith) is privileged and confidential
> and is intended for the exclusive use of the addressee(s).  If you are not
> an intended recipient, any disclosure, reproduction, distribution or other
> dissemination or use of the information contained is strictly prohibited.
> If you have received this mail in error, please delete it and notify us
> immediately.
>
> --
> dm-devel mailing list
> dm-devel at redhat.com
> https://www.redhat.com/mailman/listinfo/dm-devel
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/dm-devel/attachments/20160722/66c7250b/attachment.htm>


More information about the dm-devel mailing list