From d40b04b5d38399daf1c7108c1ecc0de4603d4852 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Fri, 19 Jul 2024 14:06:08 +0200 Subject: [PATCH] chore: add (start share == end share) check in parse namespace (backport #3709) (#3710) ## Overview The start share shouldn't be equal to the end share because the range is end-exclusive. This PR adds this check.
This is an automatic backport of pull request #3709 done by [Mergify](https://mergify.com). --------- Co-authored-by: sweexordious --- pkg/proof/proof_test.go | 7 +++++++ pkg/proof/querier.go | 9 +++------ 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/pkg/proof/proof_test.go b/pkg/proof/proof_test.go index a8d8ae0756..757cf0bf18 100644 --- a/pkg/proof/proof_test.go +++ b/pkg/proof/proof_test.go @@ -147,6 +147,13 @@ func TestNewShareInclusionProof(t *testing.T) { namespaceID: appns.TxNamespace, expectErr: true, }, + { + name: "ending share is equal to the starting share", + startingShare: 1, + endingShare: 1, + namespaceID: appns.TxNamespace, + expectErr: true, + }, { name: "ending share higher than number of shares available in square size of 32", startingShare: 0, diff --git a/pkg/proof/querier.go b/pkg/proof/querier.go index 9fca6c5afa..4e32dfb5c4 100644 --- a/pkg/proof/querier.go +++ b/pkg/proof/querier.go @@ -123,17 +123,14 @@ func QueryShareInclusionProof(_ sdk.Context, path []string, req abci.RequestQuer // ParseNamespace validates the share range, checks if it only contains one namespace and returns // that namespace ID. +// The provided range, defined by startShare and endShare, is end-exclusive. func ParseNamespace(rawShares []shares.Share, startShare, endShare int) (appns.Namespace, error) { if startShare < 0 { return appns.Namespace{}, fmt.Errorf("start share %d should be positive", startShare) } - if endShare < 0 { - return appns.Namespace{}, fmt.Errorf("end share %d should be positive", endShare) - } - - if endShare < startShare { - return appns.Namespace{}, fmt.Errorf("end share %d cannot be lower than starting share %d", endShare, startShare) + if endShare <= startShare { + return appns.Namespace{}, fmt.Errorf("end share %d cannot be lower or equal to the starting share %d", endShare, startShare) } if endShare > len(rawShares) {