From 24d1e3aebd672cda336b0ae053408cf5c3153b51 Mon Sep 17 00:00:00 2001 From: fiatjaf Date: Sat, 16 Sep 2023 15:51:41 -0300 Subject: [PATCH] lmdbn/badgern: fix for tag array crashes on query planner. --- plugins/storage/badgern/query.go | 9 ++++++++- plugins/storage/lmdbn/query.go | 9 ++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/plugins/storage/badgern/query.go b/plugins/storage/badgern/query.go index 70593c5..1e5c692 100644 --- a/plugins/storage/badgern/query.go +++ b/plugins/storage/badgern/query.go @@ -248,7 +248,14 @@ func prepareQueries(filter nostr.Filter) ( extraFilter = &nostr.Filter{Tags: filter.Tags} } else if len(filter.Tags) > 0 { index = indexTagPrefix - queries = make([]query, len(filter.Tags)) + + // determine the size of the queries array by inspecting all tags sizes + size := 0 + for _, values := range filter.Tags { + size += len(values) + } + queries = make([]query, size) + extraFilter = &nostr.Filter{Kinds: filter.Kinds} i := 0 for _, values := range filter.Tags { diff --git a/plugins/storage/lmdbn/query.go b/plugins/storage/lmdbn/query.go index 2ead212..04a1cf7 100644 --- a/plugins/storage/lmdbn/query.go +++ b/plugins/storage/lmdbn/query.go @@ -253,7 +253,14 @@ func (b *LMDBBackend) prepareQueries(filter nostr.Filter) ( extraFilter = &nostr.Filter{Tags: filter.Tags} } else if len(filter.Tags) > 0 { dbi = b.indexTag - queries = make([]query, len(filter.Tags)) + + // determine the size of the queries array by inspecting all tags sizes + size := 0 + for _, values := range filter.Tags { + size += len(values) + } + queries = make([]query, size) + extraFilter = &nostr.Filter{Kinds: filter.Kinds} i := 0 for _, values := range filter.Tags {