From 6cea9e8e675d62f72ea0d7fb9c0c9103eff656f7 Mon Sep 17 00:00:00 2001 From: Neil Alexander Date: Wed, 22 Jan 2020 18:04:58 +0000 Subject: [PATCH] Prevent OOB error in addRoomDeltaToResponse --- syncapi/storage/postgres/syncserver.go | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/syncapi/storage/postgres/syncserver.go b/syncapi/storage/postgres/syncserver.go index cdd661cfd..c103089f4 100644 --- a/syncapi/storage/postgres/syncserver.go +++ b/syncapi/storage/postgres/syncserver.go @@ -829,9 +829,11 @@ func (d *SyncServerDatasource) addRoomDeltaToResponse( // Retrieve the backward topology position, i.e. the position of the // oldest event in the room's topology. var backwardTopologyPos types.StreamPosition - backwardTopologyPos, err = d.topology.selectPositionInTopology(ctx, recentStreamEvents[0].EventID()) - if err != nil { - return err + if len(recentStreamEvents) > 0 { + backwardTopologyPos, err = d.topology.selectPositionInTopology(ctx, recentStreamEvents[0].EventID()) + if err != nil { + return err + } } if backwardTopologyPos-1 <= 0 { backwardTopologyPos = types.StreamPosition(1)