Blame SOURCES/0036-libmultipath-make-vector_foreach_slot_backwards-work.patch

b7ef27
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
b7ef27
From: Benjamin Marzinski <bmarzins@redhat.com>
b7ef27
Date: Fri, 24 May 2019 17:30:07 -0500
b7ef27
Subject: [PATCH] libmultipath: make vector_foreach_slot_backwards work as
b7ef27
 expected
b7ef27
b7ef27
All of the code that uses vector_foreach_slot_backwards() treats "i" as
b7ef27
the index of the entry "p", but the way it was coded, that wasn't the
b7ef27
case. "i" was the number of the entry counting from 1, not 0.
b7ef27
b7ef27
Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
b7ef27
---
b7ef27
 libmultipath/vector.h | 2 +-
b7ef27
 1 file changed, 1 insertion(+), 1 deletion(-)
b7ef27
b7ef27
diff --git a/libmultipath/vector.h b/libmultipath/vector.h
b7ef27
index 41d2b89..344dffd 100644
b7ef27
--- a/libmultipath/vector.h
b7ef27
+++ b/libmultipath/vector.h
b7ef27
@@ -40,7 +40,7 @@ typedef struct _vector *vector;
b7ef27
 #define vector_foreach_slot_after(v,p,i) \
b7ef27
 	for (; (v) && i < VECTOR_SIZE(v) && ((p) = (v)->slot[i]); i++)
b7ef27
 #define vector_foreach_slot_backwards(v,p,i) \
b7ef27
-	for (i = VECTOR_SIZE(v); i > 0 && ((p) = (v)->slot[i-1]); i--)
b7ef27
+	for (i = VECTOR_SIZE(v) - 1; (int)i >= 0 && ((p) = (v)->slot[i]); i--)
b7ef27
 
b7ef27
 #define identity(x) (x)
b7ef27
 /*
b7ef27
-- 
b7ef27
2.17.2
b7ef27