From a4cefd263d5d53376351b225cdd7791af1aa3b68 Mon Sep 17 00:00:00 2001 From: Rhys Lloyd Date: Wed, 23 Jul 2025 22:19:42 -0700 Subject: [PATCH] submissions: maps: guard against null pointers --- pkg/controller/maps.go | 33 ++++++++++++++++++++++----------- 1 file changed, 22 insertions(+), 11 deletions(-) diff --git a/pkg/controller/maps.go b/pkg/controller/maps.go index 49c5d18..2110034 100644 --- a/pkg/controller/maps.go +++ b/pkg/controller/maps.go @@ -2,6 +2,7 @@ package controller import ( "context" + "errors" "time" "git.itzana.me/strafesnet/go-grpc/maps_extended" @@ -9,6 +10,10 @@ import ( "git.itzana.me/strafesnet/maps-service/pkg/service" ) +var ( + PageError = errors.New("Pagination required") +) + type Maps struct { *maps_extended.UnimplementedMapsServiceServer inner *service.Service @@ -100,18 +105,24 @@ func (svc *Maps) GetList(ctx context.Context, request *maps_extended.MapIdList) return &resp, nil } func (svc *Maps) List(ctx context.Context, request *maps_extended.ListRequest) (*maps_extended.MapList, error) { + if request.Page == nil { + return nil, PageError + } + filter := service.NewMapFilter() - if request.Filter.DisplayName != nil { - filter.SetDisplayName(*request.Filter.DisplayName) - } - if request.Filter.Creator != nil { - filter.SetCreator(*request.Filter.Creator) - } - if request.Filter.GameID != nil { - filter.SetGameID(*request.Filter.GameID) - } - if request.Filter.Submitter != nil { - filter.SetSubmitter(*request.Filter.Submitter) + if request.Filter != nil { + if request.Filter.DisplayName != nil { + filter.SetDisplayName(*request.Filter.DisplayName) + } + if request.Filter.Creator != nil { + filter.SetCreator(*request.Filter.Creator) + } + if request.Filter.GameID != nil { + filter.SetGameID(*request.Filter.GameID) + } + if request.Filter.Submitter != nil { + filter.SetSubmitter(*request.Filter.Submitter) + } } items, err := svc.inner.ListMaps(ctx, filter, model.Page{ -- 2.49.1