summaryrefslogtreecommitdiffstats
path: root/net/disk_cache/rankings.cc
diff options
context:
space:
mode:
Diffstat (limited to 'net/disk_cache/rankings.cc')
-rw-r--r--net/disk_cache/rankings.cc4
1 files changed, 4 insertions, 0 deletions
diff --git a/net/disk_cache/rankings.cc b/net/disk_cache/rankings.cc
index 286998e..e3ff489 100644
--- a/net/disk_cache/rankings.cc
+++ b/net/disk_cache/rankings.cc
@@ -495,6 +495,8 @@ CacheRankingsBlock* Rankings::GetNext(CacheRankingsBlock* node, List list) {
if (my_tail.value() == node->address().value())
return NULL;
Addr address(node->Data()->next);
+ if (address.value() == node->address().value())
+ return NULL; // Another tail? fail it.
next.reset(new CacheRankingsBlock(backend_->File(address), address));
}
@@ -523,6 +525,8 @@ CacheRankingsBlock* Rankings::GetPrev(CacheRankingsBlock* node, List list) {
if (my_head.value() == node->address().value())
return NULL;
Addr address(node->Data()->prev);
+ if (address.value() == node->address().value())
+ return NULL; // Another head? fail it.
prev.reset(new CacheRankingsBlock(backend_->File(address), address));
}