فهرست منبع

bcache: Fix a null ptr deref in journal replay

Signed-off-by: Kent Overstreet <kmo@daterainc.com>
Kent Overstreet 11 سال پیش
والد
کامیت
65ddf45a31
1فایلهای تغییر یافته به همراه5 افزوده شده و 1 حذف شده
  1. 5 1
      drivers/md/bcache/journal.c

+ 5 - 1
drivers/md/bcache/journal.c

@@ -287,9 +287,13 @@ void bch_journal_mark(struct cache_set *c, struct list_head *list)
 		     k < bset_bkey_last(&i->j);
 		     k = bkey_next(k)) {
 			unsigned j;
+			struct bucket *g;
 
 			for (j = 0; j < KEY_PTRS(k); j++) {
-				struct bucket *g = PTR_BUCKET(c, k, j);
+				if (!ptr_available(c, k, j))
+					continue;
+
+				g = PTR_BUCKET(c, k, j);
 				atomic_inc(&g->pin);
 
 				if (g->prio == BTREE_PRIO &&