From 96d1a4aee6c21b0cd247513cdd9d3acc78df378d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?P=C3=A9ter=20Szil=C3=A1gyi?= <peterke@gmail.com>
Date: Fri, 31 Mar 2017 15:06:54 +0300
Subject: [PATCH] ethstats: sanity check ethstats history queries

---
 ethstats/ethstats.go | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/ethstats/ethstats.go b/ethstats/ethstats.go
index 10f611c795..3ebbe3fc3b 100644
--- a/ethstats/ethstats.go
+++ b/ethstats/ethstats.go
@@ -537,10 +537,16 @@ func (s *Service) reportHistory(conn *websocket.Conn, list []uint64) error {
 	// Gather the batch of blocks to report
 	history := make([]*blockStats, len(indexes))
 	for i, number := range indexes {
+		var block *types.Block
 		if s.eth != nil {
-			history[len(history)-1-i] = s.assembleBlockStats(s.eth.BlockChain().GetBlockByNumber(number))
+			block = s.eth.BlockChain().GetBlockByNumber(number)
 		} else {
-			history[len(history)-1-i] = s.assembleBlockStats(types.NewBlockWithHeader(s.les.BlockChain().GetHeaderByNumber(number)))
+			if header := s.les.BlockChain().GetHeaderByNumber(number); header != nil {
+				block = types.NewBlockWithHeader(header)
+			}
+		}
+		if block != nil {
+			history[len(history)-1-i] = s.assembleBlockStats(block)
 		}
 	}
 	// Assemble the history report and send it to the server
-- 
GitLab