Skip to content

Commit cf133fe

Browse files
committed
eth/filter: check nil pointer when unsubscribe
1 parent 16f3c31 commit cf133fe

File tree

1 file changed

+18
-6
lines changed

1 file changed

+18
-6
lines changed

eth/filters/filter_system.go

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -428,12 +428,24 @@ func (es *EventSystem) eventLoop() {
428428
chainEvSub = es.backend.SubscribeChainEvent(chainEvCh)
429429
)
430430

431-
// Unsubscribe all events
432-
defer sub.Unsubscribe()
433-
defer txSub.Unsubscribe()
434-
defer rmLogsSub.Unsubscribe()
435-
defer logsSub.Unsubscribe()
436-
defer chainEvSub.Unsubscribe()
431+
defer func() {
432+
// Unsubscribe all events
433+
if sub != nil {
434+
sub.Unsubscribe()
435+
}
436+
if txSub != nil {
437+
txSub.Unsubscribe()
438+
}
439+
if rmLogsSub != nil {
440+
rmLogsSub.Unsubscribe()
441+
}
442+
if logsSub != nil {
443+
logsSub.Unsubscribe()
444+
}
445+
if chainEvSub != nil {
446+
chainEvSub.Unsubscribe()
447+
}
448+
}()
437449

438450
for i := UnknownSubscription; i < LastIndexSubscription; i++ {
439451
index[i] = make(map[rpc.ID]*subscription)

0 commit comments

Comments
 (0)