core: add check in AddChildIndexer to avoid double lock (#20982)
This fixes a theoretical double lock condition which could occur in indexer.AddChildIndexer(indexer) Nobody would ever do that though. Co-authored-by: Felix Lange <fjl@twurst.com>
This commit is contained in:
parent
e32ee6ac05
commit
ba068d40dd
@ -439,6 +439,9 @@ func (c *ChainIndexer) Sections() (uint64, uint64, common.Hash) {
|
|||||||
|
|
||||||
// AddChildIndexer adds a child ChainIndexer that can use the output of this one
|
// AddChildIndexer adds a child ChainIndexer that can use the output of this one
|
||||||
func (c *ChainIndexer) AddChildIndexer(indexer *ChainIndexer) {
|
func (c *ChainIndexer) AddChildIndexer(indexer *ChainIndexer) {
|
||||||
|
if indexer == c {
|
||||||
|
panic("can't add indexer as a child of itself")
|
||||||
|
}
|
||||||
c.lock.Lock()
|
c.lock.Lock()
|
||||||
defer c.lock.Unlock()
|
defer c.lock.Unlock()
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user