mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-05-15 04:26:37 +00:00
eth/downloader, les/downloader: fix subtle flaw in queue delivery (#25861)
* fix queue.deliver * les/downloader: fix queue.deliver Co-authored-by: Martin Holst Swende <martin@swende.se>
This commit is contained in:
parent
e004e7d256
commit
b32d20324e
2 changed files with 2 additions and 2 deletions
|
|
@ -857,7 +857,7 @@ func (q *queue) deliver(id string, taskPool map[common.Hash]*types.Header,
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, header := range request.Headers[:i] {
|
for _, header := range request.Headers[:i] {
|
||||||
if res, stale, err := q.resultCache.GetDeliverySlot(header.Number.Uint64()); err == nil {
|
if res, stale, err := q.resultCache.GetDeliverySlot(header.Number.Uint64()); err == nil && !stale {
|
||||||
reconstruct(accepted, res)
|
reconstruct(accepted, res)
|
||||||
} else {
|
} else {
|
||||||
// else: between here and above, some other peer filled this result,
|
// else: between here and above, some other peer filled this result,
|
||||||
|
|
|
||||||
|
|
@ -870,7 +870,7 @@ func (q *queue) deliver(id string, taskPool map[common.Hash]*types.Header,
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, header := range request.Headers[:i] {
|
for _, header := range request.Headers[:i] {
|
||||||
if res, stale, err := q.resultCache.GetDeliverySlot(header.Number.Uint64()); err == nil {
|
if res, stale, err := q.resultCache.GetDeliverySlot(header.Number.Uint64()); err == nil && !stale {
|
||||||
reconstruct(accepted, res)
|
reconstruct(accepted, res)
|
||||||
} else {
|
} else {
|
||||||
// else: between here and above, some other peer filled this result,
|
// else: between here and above, some other peer filled this result,
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue