Эх сурвалжийг харах

bcache: Fix moving_pred()

Avoid a potential null pointer deref (e.g. from check keys for cache misses)

Signed-off-by: Kent Overstreet <kmo@daterainc.com>
Kent Overstreet 12 жил өмнө
parent
commit
10d9dcf6ee

+ 3 - 5
drivers/md/bcache/movinggc.c

@@ -24,12 +24,10 @@ static bool moving_pred(struct keybuf *buf, struct bkey *k)
 					   moving_gc_keys);
 					   moving_gc_keys);
 	unsigned i;
 	unsigned i;
 
 
-	for (i = 0; i < KEY_PTRS(k); i++) {
-		struct bucket *g = PTR_BUCKET(c, k, i);
-
-		if (GC_MOVE(g))
+	for (i = 0; i < KEY_PTRS(k); i++)
+		if (ptr_available(c, k, i) &&
+		    GC_MOVE(PTR_BUCKET(c, k, i)))
 			return true;
 			return true;
-	}
 
 
 	return false;
 	return false;
 }
 }