From: Javier Bueno Date: Thu, 15 Nov 2018 15:19:45 +0000 (+0100) Subject: mem-cache: fix invalid iterator access X-Git-Tag: v19.0.0.0~1391 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=338a173e822298bd22741342a7b24352450afdd1;p=gem5.git mem-cache: fix invalid iterator access An iterator was assigned end() and then it was used to access its corresponding element. Change-Id: I87246cf56cbc694dd6b4e2cabbe84a08429d2ac3 Reviewed-on: https://gem5-review.googlesource.com/c/14361 Reviewed-by: Nikos Nikoleris Reviewed-by: Daniel Carvalho Maintainer: Nikos Nikoleris --- diff --git a/src/mem/cache/prefetch/queued.cc b/src/mem/cache/prefetch/queued.cc index ce14b5ac5..ba4c940c1 100644 --- a/src/mem/cache/prefetch/queued.cc +++ b/src/mem/cache/prefetch/queued.cc @@ -265,8 +265,9 @@ QueuedPrefetcher::insert(AddrPriority &pf_info, bool is_secure) pfq.emplace_back(dpp); } else { iterator it = pfq.end(); - while (it != pfq.begin() && dpp > *it) + do { --it; + } while (it != pfq.begin() && dpp > *it); /* If we reach the head, we have to see if the new element is new head * or not */ if (it == pfq.begin() && dpp <= *it)